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 回答