0

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

出力:

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

次の形式で出力する必要があります。

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

1 に答える 1

4

FOR XML PATHこれを行うには多くの方法がありますが、合理的に簡潔な方法で行うことができます。

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

でテストする SQLfiddle

于 2013-06-29T15:01:30.900 に答える