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
Lasă un răspuns