- Categorias:
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> ] )
Notas de uso¶
O Snowflake realiza a conversão implícita dos argumentos para torná-los compatíveis. Por exemplo, se uma das expressões de entrada for um tipo numérico, o tipo de retorno também será numérico. Ou seja,
SELECT COALESCE('17', 1);primeiro converte o valor VARCHAR'17'no valor NUMBER17e, em seguida, retorna o primeiro valor não NULL.Quando a conversão não é possível, há uma falha na conversão implícita. Por exemplo,
SELECT COALESCE('foo', 1);retorna um erro porque o valor VARCHAR'foo'não pode ser convertido em um valor NUMBER.We recommend passing in arguments of the same type or explicitly converting arguments if needed.
Quando a conversão implícita converte um valor não numérico em numérico, o resultado é um valor do tipo NUMBER (18,5).
Para argumentos de cadeia de caracteres numérica que não sejam constantes, se NUMBER(18,5) não for suficiente para representar o valor numérico, então converta o argumento para 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¶
O exemplo a seguir mostra os valores em três colunas e depois o resultado quando a função COALESCE é aplicada às três colunas:
SELECT column1,
column2,
column3,
COALESCE(column1, column2, column3) AS coalesce_result
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_RESULT |
|---------+---------+---------+-----------------|
| 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 |
+---------+---------+---------+-----------------+