Сгруппируйте разные имена со многими записями в одну строку SQL Server - PullRequest
0 голосов
/ 13 июня 2019

У меня есть 1 таблица с именем BSFolks, которая содержит:

Name         Number
----         ------
Sam Jackson  BS001
Sam Jackson  BS003
Sam Jackson  null
Miley Cyrus  BS666
Miley Cyrus  BS069
Miley Cyrus  BS013
C. Agulera   BS420

И хотел бы вернуть

Name          Number
----          ------
Sam Jackson   BS001,BS003
Miley Cyrus   BS666,BS069,BS013
C. Agulera    BS420

Мне было трудно найти правильные условия поиска для этой операции, поэтому, пожалуйста, извините, если на этот вопрос уже был дан ответ.

Я использую SQL Server 2008 BTW.

Спасибо вам всем!

EDIT:

Вот решение.

SELECT Name, STUFF((SELECT DISTINCT ',' + Number FROM BSFolks 
WHERE Name = X.Name 
AND (Number != '' AND Number IS NOT NULL) 
FOR XML PATH ('')), 1, 1, '') AS Numbers
FROM BSFolks X
GROUP BY Name

1 Ответ

0 голосов
/ 13 июня 2019
SELECT Name, STUFF((SELECT DISTINCT ',' + Number FROM BSFolks 
WHERE Name = X.Name 
AND (Number != '' AND Number IS NOT NULL) 
FOR XML PATH ('')), 1, 1, '') AS Numbers
FROM BSFolks X
GROUP BY Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...