2012-10-02 151 views
2

請查看下錶取SQL查詢逗號分隔值

Code Name 
----------- 
001 A 
001 B 

我的查詢是

Select Code,Name from TableA 

但我需要一個像

Code Name 
------------ 
001 A,B 

記錄我怎樣才能做到這一點?

回答

3

與MySQL不同,SQL Server不會對此有一個內置的功能,但你仍然可以通過使用CROSS APPLYFOR XML PATH('')

SELECT a.Code, 
     SUBSTRING(d.[Name],1, LEN(d.[Name]) - 1) AddressList 
FROM  
     (
      SELECT DISTINCT Code 
      FROM TableA 
     ) a 
     CROSS APPLY 
     (
      SELECT [Name] + ', ' 
      FROM TableA AS B 
      WHERE A.[Code] = B.[Code] 
      FOR XML PATH('') 
     ) D ([Name]) ; 

SQLFiddle Demo

+0

不,我沒有使用MySQL –

0

你可以使用COALESCE模擬。下面的示例打開這個

你好

世界

這是

這個

的Hello,World,這是,我

DECLARE @test NVARCHAR(2000) 
SELECT @test = COALESCE(@test + ', ', '') + Field FROM Sampletable WHERE … AND Field IS NOT NULL 
SELECT @test 

你應該能夠適應這個來樣。