TOP > Nullの変換 nvl

Nullの変換 nvl

ヌル、ヌルって、うるさいなぁ。
だいたいなんでヌルっていうんだよ-。想像しちゃうね。

 

NVL( 文字列 , 変換値 )

文字列 がNULLの場合は、変換値を返す。
NULLでなければ、文字列を返す。

select nvl(null,'ヌルです') from dual
'ヌルです'

select nvl('ぼけ','ヌルです') from dual
'ぼけ'

select nvl(数値列,0) from dual
数値列がNULLなら、0を返す。
NULLでないなら、数値列の値を返す


NVL2関数

Oracle8iからは、NVL2関数も使えます。

NVLに似ていますが、、使える引数が増えます。

NVL( 文字列, Nullじゃない場合に返す値, NULLの時に返す値)

select nvl2(列1,'NULLじゃないよ','NULLでした!) from dual;

 

COALESCE関数

Oracle9iから使えます。

NVL2関数のNULLか否かの問い合わせを複数かけます。DECODEみたいですね。

 

COALESCE(列1,列2,列3,'NULLでしたー')

列1がNULLなら列2を、列2もNULLなら列3を、列3もNULLなら「NULLでしたー」という文字列を返します。

select coalesce(列1,列2,列3,'NULLでしたー') from XXXX;

 

思い出したかい?ボーイ? それとも知らなかったかい?