Menu

Requête avec CASE [Résolu/Fermé]

Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
- - Dernière réponse : pcsystemd
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
- 21 déc. 2012 à 14:19
Bonjour,

Je fais la requête suivante ou je concatène le numéro , le type et le nom pour avoir l'adresse postale complète mais j'ai un souci car quand il n'y a pas de numéro j'ai tout de même la virgule qui s'insère ce que je ne souhaite pas. voici la requête :

select a.id,a.name as Nom,case when a.n_v != '' then a.n_v else '' end ||' '|| case when a.t_v != '' then a.t_v else '' end ||', '||case when a.n_v != '' then a.n_v else '' end,v.name as city,v.cp, from home a inner join vil v on a.id_vil=v.id where a.id_re=81 and a.sta=0 order by a.id ASC;


et voici le résultat :

49 | tirturo | 31 , Route du Paradis | Paris | 75014
256 | france | , Ctre Cial Des baies | Paris | 75006

Comment vous pouvez constater il y a la virgule devant 'Ctre Cial Des baies'.

Comment procéder dans ma requête pour que le virgule ne soit insérer que lorsqu'il y a un numéro de rue et si ce n'est pas le cas qu'elle ne soit pas insérée?

Merci


Afficher la suite 

2 réponses

Messages postés
3435
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2019
910
0
Merci
Bonjour,

Il suffit de reporter la concaténation de la virgule à l'intérieur du case :
case when a.n_v != '' then a.n_v || ', ' else '' end
||
case when a.t_v != '' then a.t_v || ' ' else '' end
||
case when a.n_v != '' then a.n_v else '' end,

Ceci dit, j'ai encore plus simple : les nouvelles normes postales éditées par La Poste ne prennent plus du tout de virgule ;)
Une adresse normalisée s'écrit maintenant :
31 ROUTE DU PARADIS
(oui, tout en majuscule)
Bon après, c'est juste un détail...

Xavier
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
16
0
Merci
C'est OK.Merci pour ton aide et pour le supplément d'informations .

Bonnes fêtes