Categorias:

Funções de expressão condicional

COALESCE

Retorna a primeira expressão não NULL entre seus argumentos, ou NULL se todos os seus argumentos forem NULL.

Sintaxe

COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
Copy

Notas de uso

  • Se possível, passe em argumentos do mesmo tipo. Evite passar em argumentos de diferentes tipos.

  • Se um dos argumentos for um número, a função aplica a coerção aos argumentos de cadeia de caracteres não numéricos (por exemplo, 'a string') e argumentos de cadeia de caracteres que não são constantes do tipo NUMBER(18,5).

    Para argumentos de cadeia de caracteres numérica que não são constantes, se NUMBER(18,5) não for suficiente para representar o valor numérico, você deve converter o argumento em um tipo que possa representar o valor.

Detalhes do agrupamento

  • The collation specifications of all input arguments must be compatible.

  • The comparisons follow the collation based on the input arguments” collations and precedences.

  • The collation of the result of the function is the highest-precedence collation of the inputs.

Exemplos

SELECT column1, column2, column3, coalesce(column1, column2, column3)
FROM (values
  (1,    2,    3   ),
  (null, 2,    3   ),
  (null, null, 3   ),
  (null, null, null),
  (1,    null, 3   ),
  (1,    null, null),
  (1,    2,    null)
) v;

+---------+---------+---------+-------------------------------------+
| COLUMN1 | COLUMN2 | COLUMN3 | COALESCE(COLUMN1, COLUMN2, COLUMN3) |
|---------+---------+---------+-------------------------------------|
|       1 |       2 |       3 |                                   1 |
|    NULL |       2 |       3 |                                   2 |
|    NULL |    NULL |       3 |                                   3 |
|    NULL |    NULL |    NULL |                                NULL |
|       1 |    NULL |       3 |                                   1 |
|       1 |    NULL |    NULL |                                   1 |
|       1 |       2 |    NULL |                                   1 |
+---------+---------+---------+-------------------------------------+
Copy