- PR -

1つのSELECT文を使って

1
投稿者投稿内容
華子
会議室デビュー日: 2007/07/14
投稿数: 2
投稿日時: 2007-07-14 23:29
初めて投稿させていただきます。

今仕事でoracleを使った開発をしています。
1つのSELECT文で2つのテーブルのフールド「値」の値が
一致したものについては「○」マークを結果として
出したいのですが、方法が分かりません。

回答頂けますよう宜しくお願いします。



SELECT A.コード,A.区分,B.種類,マーク
FROM テーブルA A,テーブルB B
WHERE A.コード = B.コード;



<テーブルA>
フィールド;コード
フィールド;値
フィールド;区分

<テーブルB>
フィールド;コード
フィールド;値
フィールド;種類
yusa
会議室デビュー日: 2006/08/12
投稿数: 2
投稿日時: 2007-07-15 00:35
華子さま

CASE式またはDECODE関数はいかがでしょうか。

http://biz.rivus.jp/case_or_decode.html
http://codezine.jp/a/article/aid/405.aspx


コード:
SELECT
    A.コード
    , A.区分
    , B.種類
    , (
        CASE
            WHEN A.値 = B.値 THEN '○'
            ELSE             NULL
        END
    ) AS マーク
FROM
    テーブルA A
    , テーブルB B
WHERE
    A.コード = B.コード

華子
会議室デビュー日: 2007/07/14
投稿数: 2
投稿日時: 2007-07-15 08:12
yusa様

早速回答頂きありがとうございます。
教えていただいた形で実現できそうです。

CASE式とDECODE関数についても確認しました。
NULLの取り扱い方で違いがあるようですが、
今回の場合だとテーブルAとテーブルBの値の
比較になるので、どちらを使っても違いがない
と思いました。
考え方が間違っていれば、ご指摘ください。
宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)