J'ai les données de référence suivantes.
NOM_DE_LA_PERSONNE RUE VILLE COMTÉ CODE_POSTAL
------------------------------ ------------------------ ---------------- ---------------- ----------
David Smith 30 Johnson Street Norwich Norfolk NA38 3KL
John Brown Douglas Road Cambridge C8 9IJ
Jackie White 8 High Street Ipswich Suffolk IP7 2YT
Andrea Blue 9 Marlborough Ave Bury Suffolk IP4 0XC
Jemima Green Riverside Walk Colchester Essex CO6 7PR
James Gray 167 Hadleigh Place London SW1 4TU
Ce que je veux faire, c'est afficher une liste de noms de personnes, avec leurs adresses concaténées en une chaîne séparée par des virgules.
Cette partie est facile, j'ai utilisé ||
pour concaténer les colonnes et placer des séparateurs de virgules.
La partie sur laquelle je m'interroge, c'est que certaines lignes n'ont rien de répertorié pour COMTÉ
, donc je dois éviter d'afficher , ,
.
J'ai fait des recherches pour moi-même et j'ai décidé d'utiliser le SUBSTR dans Oracle pour remplacer les doubles virgules, cependant cela semble légèrement "sale". Y a-t-il un moyen plus propre de le faire, en évitant l'utilisation de fonctions complexes (comme cette question SO précédente) ?
Voici ce que j'ai :
SELECT
NOM_DU_FOURNISSEUR as "Nom du fournisseur",
REPLACE(RUE || ', ' || VILLE || ', ' || COMTÉ || ', ' || CODE_POSTAL, ' ,','') as "Adresse du fournisseur"
FROM
FOURNISSEURS
;
Merci