Sql server 2008 如何将结果列值连接到一行?
如何将结果值连接到一行中 我创建了两个这样的表 第一桌Sql server 2008 如何将结果列值连接到一行?,sql-server-2008,Sql Server 2008,如何将结果值连接到一行中 我创建了两个这样的表 第一桌 clientid name 1 test1 2 test2 3 test3 第二桌 id clientid 3 1 3 2 3 3 我的要求得到了满足 result 3 test1,test2,test3 我的SP ALTER PROCEDURE [dbo].[usp_test]-- 3 @ID INT AS BEGIN SELECT CO.id,A
clientid name
1 test1
2 test2
3 test3
第二桌
id clientid
3 1
3 2
3 3
我的要求得到了满足
result
3 test1,test2,test3
我的SP
ALTER PROCEDURE [dbo].[usp_test]-- 3
@ID INT
AS
BEGIN
SELECT CO.id,AR.name FROM dbo.test1 AR
LEFT OUTER JOIN dbo.test2 CO On AR.clientid=CO.clientid
WHERE CO.id=@ID
END
然后我得到了结果
id name
3 test1
3 test2
3 test3
请修改我的sp以获得以下格式的输出
id name
3 test1,test2,test3
可能重复的
SELECT id, names = STUFF((
SELECT ',' + name FROM dbo.test2
WHERE clientid = x.clientid
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
FROM dbo.test1 AS x
WHERE id = @ID
GROUP BY id;