Split Et concat

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. Contributeur
    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.
    1. 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
      1. Contributeur
        as-tu essayé
        select mail from user where nom in STRING_SPLIT(CHAMP1,';')
    2. 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 " ( "