2010-07-12 5 views
0

i ont une table dans SQL 2008montrant la colonne non agrégée dans un groupe par requête dans SQL

 
ID  Items 
1  A 
1  B 
2  C 
3  D 
3  B 

je voudrais obtenir le résultat que

 
ID Items 
1  A,B 
2  C 
3  B,D 

Je l'ai utilisé les curseurs mais a considérablement ralenti le processus, puis-je atteindre le résultat ci-dessus en utilisant le groupe par requête ou par tout autre moyen.

Merci et salutations

Kapil

+0

double possible de [Comment puis-je créer une liste séparées par des virgules à l'aide d'une requête SQL?] (Http://stackoverflow.com/questions/1817985/how-do-i-create-a- liste-séparée-en-utilisant-une-sql-query/3087799 # 3087799) –

Répondre

0

Je pense que

GROUP_CONCAT 

est la fonction que vous recherchez. Quelque chose comme

SELECT id, 
     GROUP_CONCAT (DISTINCT Items ORDER BY Items SEPARATOR ',') 
    FROM my_table 
    GROUP BY id; 
+0

'GROUP_CONCAT' est une commande MySQL, et pour autant que je sache, elle n'est pas disponible dans SQL Server 2008. – Mike

+0

Vraie, pas de group_concat() dans SQL Server 2008. La réponse de WoLpH semble être celle qui va avec. –

+0

Oups. Désolé, les gars. N'a pas remarqué ce bit à propos de SQL Server 2008. APC a judicieusement corrigé les balises. –

Questions connexes