Split Et concat

Signaler
-
 Bart -
Bonjour l'équipe,

j'ai besoin de votre aide pour une requete :
j'ai une table qui contient un attribut avec plusieurs adresse nom séparé par un ";"
J'aimerais récupérer les adresses mail de toutes ces personnes (séparé par un ";") dans un seul champ.
Exemple :
"Tim"
----> j'exécute une requete pour récupérer l'adresse mail de cette personne ***@*** : jusqu'à là c'est OK

Le problème se pose lorsque j'ai plusieurs personnes :
Exemple :
"Tim;Paul;Benoit"
Il me faut l'adresse mail de ces 3 personnes dans un meme champ séparé par un ";" :
"***@***;***@***;***@***"

L'adresse mail et le nom sont la meme table.
j'ai pensé à un split & concat mais je ne sais pas si va répondre au besoin...

merci d'avance pour votre aide


Configuration: Windows / Chrome 88.0.4324.190

3 réponses

Messages postés
14995
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
823
bonjour,
essaies-tu d'expliquer que la table a deux champs, un champ nom et un champ adresse?

ceci est particulièrement confus: "une table qui contient un attribut avec plusieurs adresse nom"

peux-tu donner la liste des champs de la table, et des exemples d'enregistrements?

ensuite, explique le résultat que tu attends.
bonjour et merci pour ton retour,

voici un exemple :
table USER :
Nom----EMAIL----ADRESSE
      • @***----1 rue de blalba 45000 ABC
      • @***----1 rue de blalba 45000 ABC
      • @***----1 rue de blalba 45000 ABC


sur un logiciel spécifique j'ai un champ qui affiche le nom des utilisateurs, cela peut être :
CHAMP 1 : TIM
ou
CHAMP 1 : TIM;PAUL;BENOIT

Dans un nouveau champ MAILPLUS :
je fais une requete simple pour récupérer l'adresse mail de la personne qui est dans CHAMP 1 :
select mail from user where nom in (CHAMP1)...
ca marche très bien lorsqu'il n'y a qu'une seule personne dans le champ.

Le problème apparait lorsqu'il y a plusieurs personne dans le CHAMP1, je voudrais récupérer leurs adresses mails dans le champ MAILPLUS de la manière suivante :
      • @***;***@***;***@***


c'est à ce niveau que je bloque.

meric d'avance pour votre retour
Messages postés
14995
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
823
as-tu essayé
select mail from user where nom in STRING_SPLIT(CHAMP1,';')
il m'affiche une erreur :
Incorrect syntax near 'STRING_SPLIT'.

select o_email from d_user where o_userdesc in STRING_SPLIT('$EDIT#WRITER_INCHRG$',';')

il me donne une erreur o_userdesc :
an expression of non-boolean type specified in a context where a condition is expected

et sur STRING_SPLIT : il attend une " ( "