Split Et concat

Bart -  
 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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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.
    0
  2. Bart
     
    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
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      as-tu essayé
      select mail from user where nom in STRING_SPLIT(CHAMP1,';')
      0
  3. Bart
     
    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 " ( "
    0