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