リファレンスガイド> SQL関数のTDVサポート> 条件付き関数> NVL
 
NVL
NVL(Null値置換)関数は、式によって返される値をテストします。返される値がNULLの場合、関数はNULL値を新しい値に置き換えます。返される値がNULLでない場合、変更されません。
構文
NVL (expression, new_value)
備考
列のNULL値を互換性のあるデータタイプの値に置き換えることができます。
NVLは、空の文字列をNULLとして扱います。たとえば、NVL(nullString、 '')はNULLを返します。
式が空の文字列の場合、NVLはNULLを返します。
DATEとTIMESTAMPを同じNVLコマンドで使用することはできません。
NVLは、データタイプの優先順位に関するANSISQL規則に従います。
例(Null値の単純な置換)
SELECT NVL (ColumnName, 'N/A') FROM table
 
上記のSELECTの場合、ColumnNameのNULL値は文字列N/Aに置き換えられます。入力値がINTEGERタイプの列である場合、置換値は整数である必要があります。
例(複数のNVL関数呼び出し)
TDVを使用すると、複数のNVL関数呼び出しを発行して、複数の列のNULL値を置き換えることができます。次の例では、ColumnAのNULL値は文字列valueXに置き換えられ、ColumnBのNULL値はColumnCの値に置き換えられます。
SELECT NVL (ColumnA, 'valueX'), NVL (ColumnB, "ColumnC") FROM table
 
二重引用符は列名を明示的に定義しますが、引用符は省略できます。
例(フィルタリングとNVL関数呼び出し)
DISTINCTキーワードを使用して、返された結果セットをフィルターに掛けることができますが、NVL関数呼び出しの外部で発生する必要があります。
SELECT DISTINCT NVL (ColumnName, UniqueValue) FROM table
 
上記のクエリでは、ColumnNameのすべてのNULL値がUniqueValueに置き換えられています。キーワードDISTINCTがあるため、SELECTステートメントはUniqueValueの最初の出現のみを返します。
例(ある列のNULL値を別の列の値に置き換える)
ある列のNULL値は、別の列の値に置き換えることができます。
SELECT NVL (FormalTitle, Common_Name) FROM table
 
上記のクエリでは、FormalTitleのNULL値は、Common_Nameの対応する値に置き換えられています。