NVL

NVL関数は、NULL値を2番目の値に置き換えます。

SQL構文

NVL(Expression1, Expression2)

パラメータ

NVLには、次のパラメータがあります。

パラメータ 説明

Expression1

値がNULLであるかをテストする式で、CHARVARCHAR2NCHARNVARCHAR2CLOBNCLOBまたはBLOB式を指定できます。

Expression2

Expression1の値がNULLの場合に使用する代替値です。CHARVARCHAR2NCHARNVARCHAR2CLOBNCLOBまたはBLOBの式を指定できます。

説明

  • Expression1Expression2のデータ型には互換性が必要です。データ型が異なる場合、可能であればデータ型を暗黙的に変換します。暗黙的に変換できない場合、エラーが戻されます。

    次に、データ型を暗黙的に変換する方法について説明します。

    • Expression1が文字データの場合は、Expression2Expression1と同じデータ型に変換され、その結果がExpression1の文字セットのVARCHAR2で戻されます。

    • Expression1が数値の場合は、TimesTenによって数値の優先順位の最も高い式が判別され、もう一方の引数がそのデータ型に暗黙的に変換されて、そのデータ型が戻されます。

  • Expression1NULLの場合、NVL関数はExpression2を返します。Expression1NOT NULLの場合、NVL関数はExpression1を返します。

  • NVL関数は、SELECTUPDATEDELETE文のWHERE句またはHAVING句、およびSELECT文のSELECTリストにおいて使用できます。

この例では、姓がBで始まる従業員に対して、commission_pctのNULL値を確認し、それらの値を'Not Applicable'に置き換えます。

Command> SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable')
         FROM employees 
         WHERE last_name LIKE 'B%'
         ORDER BY last_name;

< Baer, Not Applicable >
< Baida, Not Applicable >
< Banda, .1 >
< Bates, .15 >
< Bell, Not Applicable >
< Bernstein, .25 >
< Bissot, Not Applicable >
< Bloom, .2 >
< Bull, Not Applicable >
9 rows found.