2012-01-30 4 views
0

Je souhaite faire pivoter une colonne dans SQL Server 2005. Je suis à peu près certain qu'il existe une méthode XML pour l'exécuter, mais que je n'arrive pas à comprendre. Voici un tableau:Tableau croisé dynamique SQL Server 2005

ID Class 
1  20002 
1  20003 
1  20004 
2  20003 
2  20012 

Valeur souhaitée est:

ID Class 
1  20002,20003,20004 
2  20003,20012 

Merci à l'avance

+0

Vérifiez le mot-clé PIVOT qui a été introduit dans SQL Server 2005. Et [cette question] (http://stackoverflow.com/questions/198716/pivot-in-sql-2005) parmi beaucoup d'autres. – DOK

+0

duplication possible de [HOW pour obtenir la valeur CSV pour le scénario suivant] (http://stackoverflow.com/questions/4713476/how-to-get-csv-value-for-following-scenario) –

+0

Ceci n'est pas "PIVOT" . Il y a beaucoup de questions comme ça sur SO, faire une recherche rapide avec les balises sql-server et group-concat – Lamak

Répondre

3

Je ne suis pas sûr PIVOT (ou UNPIVOT) sont ce que vous recherchez. Voici un code que j'utilise lorsque j'ai besoin d'inclure une liste CSV dans une requête. J'espère que cela aide!

SELECT DISTINCT 
     ID 
     , Class = STUFF(
         cast(
          (select ', ' + cast(Class as nvarchar) 
          from TableName t2 
          WHERE t2.ID = t1.ID 
          for xml path('')) as nvarchar(2000)) 
       ,1,2, N'') 
FROM TableName t1 
Questions connexes