Sintaxa

COALESCE(value,...)

Descriere

a se Întoarce la primul non-valoare NULĂ în listă sau NULL dacă nu există nonon-valori NULL. Trebuie trecut cel puțin un parametru.

funcția este utilă atunci când se înlocuiește o valoare implicită cu valori nule la afișarea datelor.

A se vedea, de asemenea, valorile nule în MariaDB.,

Exemple

SELECT COALESCE(NULL,1);+------------------+| COALESCE(NULL,1) |+------------------+| 1 |+------------------+
SELECT COALESCE(NULL,NULL,NULL);+--------------------------+| COALESCE(NULL,NULL,NULL) |+--------------------------+| NULL |+--------------------------+

atunci Când două argumente sunt date, se COAGULEZE() este aceeași ca IFNULL():

SET @a=NULL, @b=1;SELECT COALESCE(@a, @b), IFNULL(@a, @b);+------------------+----------------+| COALESCE(@a, @b) | IFNULL(@a, @b) |+------------------+----------------+| 1 | 1 |+------------------+----------------+

Hex tip de confuzie:

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 |+------+------+

motiv pentru diferite rezultate de mai sus este că atunci când 0x31 este introdus direct la coloana, e tratat ca un număr (a se vedea Hexazecimal Literali), în timp ce atunci când 0x31 este trecut să se COAGULEZE(), este tratată ca un șir de caractere, pentru că:

  • valori HEX au un string tip de date implicit.
  • COALESCE () are același tip de date ca argumentul.,

Înlocuind zero pentru NULĂ (în acest caz, atunci când agregate funcția returnează NULL după ce a constatat nici o randuri):

SELECT SUM(score) FROM student;+------------+| SUM(score) |+------------+| NULL |+------------+SELECT COALESCE(SUM(score),0) FROM student;+------------------------+| COALESCE(SUM(score),0) |+------------------------+| 0 |+------------------------+

Vezi și

  • valori NULE
  • ESTE operator
  • NU ESTE NULL operatorul
  • IFNULL funcția
  • NULLIF funcția
  • se CONECTEZE tipuri de date