请查看下表
Code Name
-----------
001 A
001 B
我的查询是
Select Code,Name from TableA
但我需要像
这样的记录Code Name
------------
001 A,B
我该怎么做?
答案 0 :(得分:3)
与MySQL不同,SQL Server
没有内置函数,但您仍然可以使用CROSS APPLY
和FOR 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]) ;
答案 1 :(得分:0)
您可以使用COALESCE
。以下示例将此
您好
世界
这是
我
进入这个
Hello,World,It's,Me
DECLARE @test NVARCHAR(2000)
SELECT @test = COALESCE(@test + ', ', '') + Field FROM Sampletable WHERE … AND Field IS NOT NULL
SELECT @test
您应该能够根据您的样本进行调整。