Problème avec NULL dans HAVING
Salut à toutes et à tous,
Je cherche à créer une requête en PostgreSQL qui liste les éléments d'une autre requête (une vue) pour lesquels le champs d'une table jointe est null.
J'ai écris ceci :
Code:
1 2 3 4 5 6 7
|
SELECT "TblSecteurs_ID"
FROM "SecteursInadmissibles"
JOIN "TblSecteurs" ON "TblSecteurs_ID" = "SecteursInadmissibles_SecteurID"
GROUP BY "TblSecteurs_ID"
HAVING "TblSecteurs_JustificationNonAdmissible" = NULL
ORDER BY "TblSecteurs_ID" |
Or cette requête fonctionne mais ne retourne aucun élément.
J'ai vérifié directement dans les tables, et il existe bien des éléments dans la vue source dont "TblSecteurs_JustificationNonAdmissible" = NULL
D'ailleurs si je teste la requête sans le HAVING, il me retourne une liste dont plusieurs éléments de "TblSecteurs_JustificationNonAdmissible" sont vides.
Me disant que tout cela n'est peut-être pas si null que ça, j'ai écris :
Code:
1 2 3 4 5 6
|
SELECT "TblSecteurs_ID", coalesce ("TblSecteurs_JustificationNonAdmissible",'NULL')
FROM "SecteursInadmissibles"
JOIN "TblSecteurs" ON "TblSecteurs_ID" = "SecteursInadmissibles_SecteurID"
GROUP BY "TblSecteurs_ID", "TblSecteurs_JustificationNonAdmissible"
ORDER BY "TblSecteurs_ID" |
Or ici il me met bien 'NULL' dans les champs qui étaient vides. Ce coalesce qui me met des 'NULL' dans les champs me fait bien penser que ces champs sont effectivement à NULL, sinon leur contenu (vide donc null) n'aurait pas été remplacé par le texte 'NULL'.
Dès lors, pourquoi la même requête ne ressort-elle plus rien aussi tôt que je remet la clause HAVING "TblSecteurs_JustificationNonAdmissible" = NULL ?
Le champs "TblSecteurs_JustificationNonAdmissible" est un champs Text pour lequel l'option "Not NULL" n'est pas cochée et pour lequel la valeur par défaut est vide.
Merci de vos z'avis z'avisés,
Jean-Marc