290 votes

Quel est l'équivalent PostgreSQL pour ISNULL ()

Dans MS SQL-Server, je peux faire:

SELECT ISNULL(Field,'Empty') from Table

Mais dans PostgreSQL, j'obtiens une erreur de syntaxe. Comment émuler la fonctionnalité ISNULL() ?

500voto

Kyle Butt Points 3593
 SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias
 

Ou plus idiomatique:

 SELECT coalesce(field, 'Empty') AS field_alias
 

88voto

Jim Clouse Points 1688

Utiliser COALESCE() à la place:

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

Il fonctionne un peu comme ISNULL, bien que fournit plus de fonctionnalités. Fusionnent sera de retour la première valeur non nulle dans la liste. Donc:

SELECT COALESCE(null, null, 5); 

renvoie 5, tandis que

SELECT COALESCE(null, 2, 5);

renvoie 2

Fusionner prendra un grand nombre d'arguments. Il n'existe aucune preuve maximale. Je l'ai testé il sera 100 arguments et il a réussi. Cela devrait être largement suffisante pour la grande majorité des situations.

34voto

Artur Points 101

Comment émuler la fonctionnalité ISNULL ()?

SELECT (champ IS NULL) FROM ...

18voto

user2718914 Points 31

Essayer:

 SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X