- PR -

oracleでcase式を書いたら「FROMキーワードが指定の位置に…」エラーとなる

投稿者投稿内容
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2008-07-17 12:30
引用:

あんとれさんの書き込み (2008-07-17 08:28) より:
何もNVL を使わなくても、
こんな感じでよいように思うのですが。

CASE w.kbn
when '0' then m.コメント1
when '1' then m.コメント2
when '2' then m.コメント3
when '3' then m.コメント4
when '4' then m.コメント5
when '5' then m.コメント6
when '6' then m.コメント7
when '7' then m.コメント8
when '8' then m.コメント9
when '9' then m.コメント10
when '10' then m.コメント11
when '11' then m.コメント12
when NULL then ' '



w.kbn='4'でm.コメント5がNULLの時、NULLが返りませんか?
忠犬
大ベテラン
会議室デビュー日: 2006/05/01
投稿数: 109
投稿日時: 2008-07-17 18:37
Oracleはどうか分かりませんが、nullかどうかの判定は、

コード:
where 列名=null



では行えず、

コード:
where 列名 is null



で行う必要があります。

それと同様に、

コード:
case 列名
 when '値' then 設定値
 when null then  設定値
end



といった指定ではnullを拾えず、

コード:
case when 列名='値' then 設定値
       when 列名 is null then  設定値
end



といった指定にする必要があります。

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