2013-06-29 2 views
0

Comment faire pour que les données de ligne soient séparées par des virgules dans SQL Server?Comment faire pour séparer les données de ligne séparées par des virgules dans SQL Server

CREATE TABLE CountryState 
(Country Varchar(15), State Varchar(15)) 
GO 

INSERT INTO CountryState VALUES('India','MH') 
INSERT INTO CountryState VALUES('India','DL') 
INSERT INTO CountryState VALUES('US','NJ') 
INSERT INTO CountryState VALUES('US','NY') 
GO 

SELECT * FROM CountryState 

Sortie:

Country State 
----------------------------  
India MH 
India DL 
US NJ 
US NY 

je besoin d'une sortie au format suivant.

Country State 
------------------  
India MH,DL 
US   NJ,NY 
+0

ou http://stackoverflow.com/questions/8868604/sql-group-concat-function-in-sql-server ... – a1ex07

Répondre

3

Il FOR XML PATH pour le faire sont nombreuses façons de le faire, mais vous pouvez utiliser d'une manière raisonnablement concise.

SELECT DISTINCT Country, 
       STUFF((SELECT ',' + State 
         FROM CountryState cs 
         WHERE CountryState.Country = cs.Country 
         FOR XML PATH ('')), 1, 1, '') 
FROM CountryState; 

An SQLfiddle to test with.

Questions connexes