Comment obtenir plusieurs lignes dans une ligne en tant que chaîne?
J'ai deux tables "un à plusieurs":
Table1
ID Name
1 Abe
2 David
3 Orly
Table2
ID email
1 a@zz.com
1 ab@zz.com
1 abe@zz.com
2 dav@zz.com
2 d@zz.com
3 orly@zz.com
3 o@zz.com
J'ai besoin d'une sortie comme celle-ci:
1 Abe a@zz.com, ab@zz.com, abe@zz.com
2 David dav@zz.com, d@zz.com
3 Orly orly@zz.com, o@zz.com
Je sais que cela ne fonctionne pas, parce que la sélection interne n'est pas une chaîne unique:
SELECT
ID, Name,
(SELECT email FROM Table2 WHERE Table2.ID = Table1.ID) AS emails
FROM Table1
J'ai essayé d'appliquer:
DECLARE @emails VARCHAR(999)
SELECT [ID],[Name],
(SELECT @emails = COALESCE(@emails + ', ', '') + [email]
FROM Table2) AS 'emails'
FROM Table1
mais avec pas de chance.
Comment cela doit-il être résolu?
Grâce.
source d'informationauteur elarrow
Vous devez vous connecter pour publier un commentaire.
Une des plus belles façons d'y parvenir est de les combiner Pour XML Path et des TRUCS comme suit:
Résultats: