如何将结果值连接成一行?
我创建了两个这样的表。
第一张表
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
答案 0 :(得分:0)
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;