Vous n'êtes pas identifié(e).
Pages : 1
Bonjour @tous.
Il y a une question à laquelle je n'arrive pas à répondre concernant le passage d'une valeur VIDE en NULL.
En effet, certains champs de ma BDD sont composés de double quote ''. Le problème c'est que lorsque je requête sur ces champs-là (ex. champ1 IS NULL) et bien ils n'appraissent pas dans le résultat.
J'ai donc tenté un certain nombre d'opération pour pouvoir les sélectionner avec ce genre de chose :
select replace(quote_ident(champ1),'""',NULL) from table1
Mais cette requête me met tous les résultats en NULL. J'ai également testé en faisant un simple
replace(quote_nullable(designation),'''','')
Mais pas mieux, je tourne en rond et je ne trouve pas de solution. Existe-t-il une fonction existantes pour régler ce genre de souci ?
Par avance merci.
Geo-x
Hors ligne
Bonjour,
Vos champs sont-ils vides ou contiennent-ils des simples ou doubles quotes ? Si vous ne pouvez pas toucher à vos données (ce qui serait la meilleure solution), le plus simple serait certainement
COALESCE(champ,'""') = '""'
pour tester à la fois les champs NULL et les champs valant "".
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour Rjuju.
Non, je ne peux pas toucher à mes données (ce serait trop simple ;-) )
et les champs ne sont pas vides, quand je regarde les tables via pgadmin ils contiennent des doubles quotes : '' , mais quand je fais un SELECT champ1, là j'ai un résultat vide.
Et moi ce que j'ai besoin de faire c'est filtrer tous les champs vides/NULL.
Hors ligne
Alors SELECT * FROM matable WHERE COALESCE(champ,'') = '' ?
Julien.
https://rjuju.github.io/
Hors ligne
Oui en effet, pour être sur que le champ soit NULL c'est sûrement ce qu'il y a de mieux à faire.
Merci rjuju !
Hors ligne
Après plus de deux ans de test, je tenais simplement à préciser que cette façon de faire est la plus sûre, même si elle ralentit un tantinet la requête associée.
Geo-x
Hors ligne
Pages : 1