sintaxe
COALESCE(value,...)
Descrição
Devolve o primeiro valor não nulo na lista, ou nulo se existirem valores não nulos. Pelo menos um parâmetro deve ser passado.
A função é útil quando se substitui um valor padrão por valores nulos quando se apresentam dados.
Ver também valores nulos em MariaDB.,
Exemplos
SELECT COALESCE(NULL,1);+------------------+| COALESCE(NULL,1) |+------------------+| 1 |+------------------+
SELECT COALESCE(NULL,NULL,NULL);+--------------------------+| COALESCE(NULL,NULL,NULL) |+--------------------------+| NULL |+--------------------------+
Quando dois argumentos são dadas, COALESCE() é o mesmo que IFNULL():
SET @a=NULL, @b=1;SELECT COALESCE(@a, @b), IFNULL(@a, @b);+------------------+----------------+| COALESCE(@a, @b) | IFNULL(@a, @b) |+------------------+----------------+| 1 | 1 |+------------------+----------------+
Hex tipo de confusão:
CREATE TABLE t1 (a INT, b VARCHAR(10));INSERT INTO t1 VALUES (0x31, 0x61),(COALESCE(0x31), COALESCE(0x61));SELECT * FROM t1;+------+------+| a | b |+------+------+| 49 | a || 1 | a |+------+------+
A razão para as diferenças de resultados acima é que, quando 0 x 31 é inserido diretamente para a coluna, é tratado como um número (ver Hexadecimal Literais), enquanto que, quando 0 x 31 é passado para a função COALESCE(), ela é tratada como uma cadeia, devido a:
- HEX valores têm um tipo de dados de cadeia por padrão.
- COALESCE () tem o mesmo tipo de dados que o argumento.,
a Substituição de zero para um valor NULO (neste caso quando a função de agregação retorna NULL após encontrar linhas):
SELECT SUM(score) FROM student;+------------+| SUM(score) |+------------+| NULL |+------------+SELECT COALESCE(SUM(score),0) FROM student;+------------------------+| COALESCE(SUM(score),0) |+------------------------+| 0 |+------------------------+
Veja também:
- NULL valores
- É NULO o operador
- NÃO É NULO o operador
- a função IFNULL
- NULLIF função
- CONECTAR-se tipos de dados
Deixe uma resposta