Syntax

COALESCE(value,...)

Description

devuelve el primer valor no nulo de la lista, o NULL si hay valores no nulos. Se debe pasar al menos un parámetro.

la función es útil cuando se sustituye un valor predeterminado por valores null cuando se muestran datos.

vea también valores nulos en MariaDB.,

ejemplos

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

cuando se dan dos argumentos, COALESCE() es lo mismo que IFNULL():

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

confusión de tipo hexadecimal:

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

la razón de los resultados diferentes anteriores es que cuando 0x31 se inserta directamente en la columna, se trata como un número (Ver literales hexadecimales), mientras que cuando 0x31 se pasa a COALESCE(), se trata como una cadena, porque:

  • Los valores hexadecimales tienen un tipo de datos de cadena por defecto.
  • COALESCE() tiene el mismo tipo de datos que el argumento.,

sustituyendo cero por NULL (en este caso cuando la función aggregate devuelve NULL después de no encontrar filas):

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

vea también

  • valores NULL
  • Es operador NULL
  • NO es operador NULL
  • Función IFNULL
  • Función nullif
  • conectar tipos de datos