カテゴリ:

条件式関数

NVL2

最初の入力が NULLかどうかに応じて値を返します。

  • expr1 が NOT NULL の場合、 NVL2 は expr2 を返します。

  • expr1 が NULL の場合、 NVL2 は expr3 を返します。

構文

NVL2( <expr1> , <expr2> , <expr3> )
Copy

引数

expr1

NULL かどうかを確認するためにチェックされる式です。

expr2

expr1 が NULLでない場合にこの式が評価され、値が返されます。

expr3

expr1 が NULL の場合にこの式が評価され、値が返されます。

使用上の注意

  • 3つの式はすべて同じ(または互換性のある)データ型でなければなりません。

照合の詳細

  • この式で重要なのは、 NULL かどうかのみのため、 expr1 の照合指定は無視されます。

  • expr2expr3 の照合仕様には互換性が必要です。

  • 関数から返される値は、 expr2expr3 の最上位の 優先順位 照合です。

a がnullでない場合は b を返し、そうでない場合は c を返します。

SELECT a, b, c, NVL2(a, b, c) FROM i2;

--------+--------+--------+---------------+
   A    |   B    |   C    | NVL2(A, B, C) |
--------+--------+--------+---------------+
 0      | 5      | 3      | 5             |
 0      | 5      | [NULL] | 5             |
 0      | [NULL] | 3      | [NULL]        |
 0      | [NULL] | [NULL] | [NULL]        |
 [NULL] | 5      | 3      | 3             |
 [NULL] | 5      | [NULL] | [NULL]        |
 [NULL] | [NULL] | 3      | 3             |
 [NULL] | [NULL] | [NULL] | [NULL]        |
--------+--------+--------+---------------+
Copy