exTANAl Storage@Wiki

DB

最終更新:

tana_tana112

- view
管理者のみ編集可

OracleのNULL値

NULLとは状態であって値ではない。
そのため、比較文『a = NULL』は"FALSE"ではなくて"UNKNOWN"。
また、『NULL = NULL』も同様に"UNKNOWN"となる。

NULL判定に対応した関数は"ISNULL"、"NVL"、"DECODE"。

二つの値を比較したいが、NULLが入力されている可能性がある場合は
WHERE DECODE(A, B, "TRUE", "FALSE") = "TRUE"
みたいにするとシンプル。

ちなみにORACLEは空文字とNULLの区別がつかない点も注意。
いやORACLE Silver持ちなら常識なんだろーけど、衝撃だったわ。


OerderByでNULL値を最後にする

Select * From Tbl
Order By
   Case
      When Clm1 Is Null Then '1'
      Else '0'
   End,
   Clm2
参考
SQLのCASE文ってほとんど使った事ないや(´ω`)
記事メニュー
目安箱バナー