Dans MS SQL-Server, je peux faire:
SELECT ISNULL(Field,'Empty') from Table
Mais dans PostgreSQL, je reçois une erreur de syntaxe. Comment émuler la fonctionnalité ISNULL()
?
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias
Ou plus idiomatique:
SELECT coalesce(field, 'Empty') AS field_alias
Utilisez COALESCE()
à la place:
SELECT COALESCE(Field,'Empty') from Table;
Il fonctionne beaucoup comme ISNULL
, mais fournit plus de fonctionnalités. Coalesce renverra la première valeur non nulle de la liste. Ainsi:
SELECT COALESCE(null, null, 5);
renvoie 5, tandis que
SELECT COALESCE(null, 2, 5);
renvoie 2
Coalesce prendra un grand nombre d'arguments. Il n'y a pas de maximum documenté. J'ai testé 100 arguments et cela a réussi. Cela devrait suffire à la grande majorité des situations.
Comment puis-je émuler la fonctionnalité ISNULL ()?
SELECT (Field IS NULL) FROM ...
Essayer:
SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name