ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
複数のNULL条件を簡潔に記述する(COALESCE)
スポンサード リンク

複数のNULL条件を簡潔に記述するには COALESCE関数を使用します

COALESCE( 式1 ,
         式2 ,
         式3 ,
          :
          : )
COALESCEは、式1がNULL以外の値を戻せば終了しますが、式1がNULLを返した場合は、式2を実行します。

式2がNULLを返せば、次の式3を実行し、引数で指定された式がNULL以外の値を返すまで続きます。

引数で指定された全ての式がNULLを返した場合、NULLをCOALESCEの結果として返します。


例1) COALESCEを使用して、以下の条件で処理結果を返します。
       price1がNULL以外の場合、price*0.5の結果を返す。
       price1がNULL、かつ、price2がNULL以外の場合、price2を返す。
       price1がNULL、かつ、price2がNULLの場合、500を返す。    
SQL> select
  2   product_id, coalesce( price1 * 0.5, price2, 500 )
  3  from sales;

PRO COALESCE(PRICE1*0.5, PRICE2, 500)
---  -------------------------------
P01                       50
P02                       300
P03                       500
    1レコード目は、price1が100なので、100*0.5の結果を返しています。
    2レコード目は、price1がNULLで、price2が300なので、300を返しています。
    3レコード目は、price1、price2ともにNULLなので、500を返しています。

 表「sales」のレコード

SQL> select * from sales;

PRO PRICE1     PRICE2
--- ---------- ----------
P01 100      200
P02          300
P03



スポンサード リンク



IF文のような条件式を使う(CASE WHEN〜、DECODE)
2つの値を比較して同じ場合はNULLを返す( NULLIF )
複数のNULL条件を簡潔に記述する(COALESCE)

SQL(DML) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ