Descripción: Recibe dos o más argumentos y devuelve el primer argumento que no sea NULL. Si todos sus argumentos son NULL, el resultado también será NULL
Tipo de resultado: Depende de sus argumentos
Sintaxis:
COALESCE(<expresión 1>, <expresión2> [, <expresión N> …])
Ejemplo:
SELECT COALESCE(PER_NOMBRE, 'Sr./Sra.') || ' ' || PER_APELLD AS NombrePersona FROM PERSONAS
Si PER_NOMBRE no es NULL entonces mostrará PER_NOMBRE, si es NULL entonces mostrará ‘Sr./Sra.’. Después mostrará un espacio en blanco y después el apellido.
.
El índice del blog Firebird21 | Firebird SQL
Jun 17, 2013 @ 04:41:41
Ángel
Dic 12, 2017 @ 09:13:17
Estoy probando este query con SQL Manager:
SELECT Apellidos, Referencia, Nif, Codigo, COALESCE(Referencia, Nif, CAST(Codigo AS VARCHAR(10))) FROM Persona ORDER BY 2,3,4,5
Según su explicación la cláusula COALESCE debería devolver NULL sólo cuando todos los campos de la misma lo fueran. Sin embargo me está devolviendo esto:
Apellidos Referencia Nif Codigo COALESCE
ARIAS ORGANERO 06208661H 842
RIVERA GOMEZ 06238975H 12476
VAQUERO LIZANO 1000 06172129X 15257 1000
Y entiendo que en los dos primeros casos al estar vacía la columna referencia debería devolver en su lugar el valro de Nif. ¿Dónde puede estar el error?
wrov
Dic 12, 2017 @ 19:03:05
La función COALESCE() devuelve el primer valor que no sea NULL, dentro de sus argumentos.
Si la columna REFERENCIA es de tipo CHAR o de tipo VARCHAR, y contiene espacios en blanco, entonces no es NULL. Un espacio en blanco no es igual a NULL.
Saludos.
Walter.