sql server - then - Cuál es el equivalente de PostgreSQL para ISNULL()
reemplazar null por 0 postgresql (5)
¿Cómo emulo la funcionalidad ISNULL ()?
SELECT (Field IS NULL) FROM ...
En MS SQL-Server, puedo hacer:
SELECT ISNULL(Field,''Empty'') from Table
Pero en PostgreSQL me sale un error de sintaxis. ¿Cómo ISNULL()
la funcionalidad ISNULL()
?
Crea la siguiente función
CREATE OR REPLACE FUNCTION isnull(text, text) RETURNS text AS ''SELECT (CASE (SELECT $1 "
"is null) WHEN true THEN $2 ELSE $1 END) AS RESULT'' LANGUAGE ''sql''
Y funcionará.
Puede crear diferentes versiones con diferentes tipos de parámetros.
Tratar:
SELECT COALESCE(NULLIF(field, ''''), another_field) FROM table_name
Use COALESCE()
lugar:
SELECT COALESCE(Field,''Empty'') from Table;
Funciona como ISNULL
, aunque proporciona más funcionalidad. Coalesce devolverá el primer valor no nulo en la lista. Así:
SELECT COALESCE(null, null, 5);
devuelve 5, mientras
SELECT COALESCE(null, 2, 5);
devuelve 2
Coalesce tendrá una gran cantidad de argumentos. No hay máximo documentado. Lo probé con 100 argumentos y lo logré. Esto debería ser suficiente para la gran mayoría de las situaciones.
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