|
数値属性を持つ列に NULL が入っている可能性のある場合は、常に列の参照を
とすると問題が発生しにくくなります
例えば、列名 * 0.05 という計算をしたい場合、列の値が NULL の場合は NULL を戻します。
そのような結果を避けるためには、下記のような記述を行ないます。
|
nvl( 列名, 0 ) * 0.05
または
nvl( 列名 * 0.05, 0 )
| |
|
戻り値の型は、列名の型で返されます。
NVL にはもう一つ NVL2 という 関数があり、以下の書式となります
この場合、式1 が NULL の場合 式3 が返されますが、式1が NULL で無い場合は 式2が返されます
上記の例を書き変えると以下のようになります
関数は、条件にも使用できるので、以下の二つの検索は同じ結果を返します
|
select * from 商品 where 単価 >= 1000 or 単価 is NULL
select * from 商品 where nvl(単価,1000) >= 1000
| |
|
|
|