Categorias:

Funções de expressão condicional

NVL2

Retorna valores com base na possibilidade de a primeira entrada ser NULL:

  • Se expr1 for NOT NULL, então NVL2 retorna expr2.

  • Se expr1 for NULL, então NVL2 retorna expr3.

Sintaxe

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

Argumentos

expr1

A expressão a ser verificada para ver se é NULL.

expr2

Se expr1 não for NULL, esta expressão será avaliada e seu valor será retornado.

expr3

Se expr1 for NULL, esta expressão será avaliada e seu valor será retornado.

Notas de uso

  • Todas as três expressões devem ter o mesmo tipo de dados (ou compatíveis).

Detalhes do agrupamento

  • A especificação de agrupamento para expr1 é ignorada porque tudo que importa sobre esta expressão é se ela é NULL ou não.

  • As especificações de agrupamento para expr2 e expr3 devem ser compatíveis.

  • O valor retornado da função é o agrupamento de maior precedência de expr2 e expr3.

Exemplos

Se a não for nulo, então retorna b, senão retorna 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