Как объединить значения столбца результата в одну строку? - PullRequest
0 голосов
/ 24 марта 2012

Как объединить значения результатов в одну строку?

Я создал две таблицы, подобные этой.

первый стол

clientid name
1        test1
2        test2
3        test3

второй стол

id   clientid
3    1
3    2
3    3

мое требование получить

result
3  test1,test2,test3

Мой ИП ....

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

1 Ответ

0 голосов
/ 24 марта 2012
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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...