Requête avec CASE

Résolu/Fermé
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 21 déc. 2012 à 09:16
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 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


2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 déc. 2012 à 14:02
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
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
21 déc. 2012 à 14:19
C'est OK.Merci pour ton aide et pour le supplément d'informations .

Bonnes fêtes
0