Vous n'êtes pas identifié(e).

#1 18/11/2014 13:22:48

Geo-x
Membre

quote to NULL

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

#2 18/11/2014 13:28:27

rjuju
Administrateur

Re : quote to NULL

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 "".

Hors ligne

#3 18/11/2014 14:08:05

Geo-x
Membre

Re : quote to NULL

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

#4 18/11/2014 17:41:18

rjuju
Administrateur

Re : quote to NULL

Alors SELECT * FROM matable WHERE COALESCE(champ,'') = '' ?

Hors ligne

#5 18/11/2014 17:52:26

Geo-x
Membre

Re : quote to NULL

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

#6 26/01/2017 12:05:55

Geo-x
Membre

Re : quote to NULL

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

Pied de page des forums