リファレンスガイド> SQL関数のTDVサポート> 条件関数> NVL2
 
NVL2
NVL2(Null値置換2)関数を使用すると、返された結果セットのNULL以外の値とNULL値の両方を置き換えることができます。
構文
NVL2 (expression, value_if_NOT_NULL, value_if_NULL)
備考
NVL2は、式で定義された列または変数によって返される値をテストします。
返された値がNULLでない場合、関数はその値を2番目の式(value_if_NOT_NULL)に置き換えます。
返された値がNULLの場合、関数はその値を3番目の式(value_if_NULL)に置き換えます。
置換値の文字列が数値でないか、一重引用符で囲まれていない場合は、列名として解釈されます。この場合、結果セットは、NULLテストの結果に対応する列にある値に置き換えられます。
NVL2は、空の文字列をNULLとして扱います。
NVL2は、データタイプの優先順位に関するANSISQL規則に従います。
例(完了値のテスト)
CompletionTimeという名前の列の場合、NULL以外の値はトランザクションが完了したことを示しているため、戻り値は1です。CompletionTimeの値がNULLの場合、戻り値は0です。
NVL2 (CompletionTime, 1, 0) FROM Transaction_Table
例(タイムスタンプの確認)
この例では、SELECT NVL2は、PymtPosted列にタイムスタンプが設定されているかどうかを確認します。 NULL以外の値の場合、結果セットに文字列「Yes」が返されます。 PymtPostedの値がNULLの場合、Acct_Statusという名前の列の対応する行の値が結果セットに返されます。
SELECT NVL2 (PymtPosted_timestamp, 'Yes', Acct_Status) FROM table
例(値またはNULLの確認)
この例では、値に応じて、名前付き列の各行に適切な文字列が返されます。
SELECT NVL2 (ColName, 'This had a value.', 'This was NULL.') FROM table