请检查下表
Code Name
-----------
001 A
001 B
我的查询是
Select Code,Name from TableA
但我需要像这样的记录
Code Name
------------
001 A,B
我怎样才能做到这一点?
请检查下表
Code Name
-----------
001 A
001 B
我的查询是
Select Code,Name from TableA
但我需要像这样的记录
Code Name
------------
001 A,B
我怎样才能做到这一点?
与 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]) ;
你可以使用COALESCE
. 以下示例将其变为
你好
世界
它是
我
进入这个
你好,世界,它是我
DECLARE @test NVARCHAR(2000)
SELECT @test = COALESCE(@test + ', ', '') + Field FROM Sampletable WHERE … AND Field IS NOT NULL
SELECT @test
您应该能够根据您的样本进行调整。