¿Cuál es el equivalente de PostgreSQL para ISNULL()?

Resuelto Byron Whitlock asked hace 14 años • 4 respuestas

En MS SQL-Server, puedo hacer:

SELECT ISNULL(Field,'Empty') from Table

Pero en PostgreSQL me sale un error de sintaxis. ¿Cómo emulo la ISNULL()funcionalidad?

Byron Whitlock avatar Feb 07 '10 02:02 Byron Whitlock
Aceptado
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias

O más idiomático:

SELECT coalesce(field, 'Empty') AS field_alias
Kyle Butt avatar Feb 06 '2010 20:02 Kyle Butt

Utilice COALESCE()en su lugar:

SELECT COALESCE(Field,'Empty') from Table;

Funciona de manera muy similar a ISNULL, aunque proporciona más funcionalidad. Coalesce devolverá el primer valor no nulo de la lista. De este modo:

SELECT COALESCE(null, null, 5); 

devuelve 5, mientras

SELECT COALESCE(null, 2, 5);

regresa 2

Coalesce requerirá una gran cantidad de argumentos. No existe un máximo documentado. Lo probé con 100 argumentos y tuvo éxito. Esto debería ser suficiente para la gran mayoría de situaciones.

Jim Clouse avatar Jan 10 '2012 21:01 Jim Clouse

¿Cómo emulo la funcionalidad ISNULL()?

SELECT (Field IS NULL) FROM ...
Artur avatar Nov 27 '2012 13:11 Artur

Intentar:

SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name
user2718914 avatar Aug 26 '2013 17:08 user2718914