Как получить значения столбца в одном значении через запятую без использования пути XML и временной переменной
У меня есть таблица "Город", которая содержит строки, подобные этим:
ID CityName
1 Chennai
2 Bangalore
3 Delhi
4 Mumbai
Я хочу получить такой результат, как 'Chennai,Bangalore,Delhi,Mumbai'
используя запрос выбора.
Когда я ищу в Google, ответы используют XMLPATH
или временная переменная. Есть ли способ сделать это без их использования?
1 ответ
Решение
CREATE TABLE [dbo].[Cities](
[Id] [int] NULL,
[CityName] [varchar](50) NULL
) ON [PRIMARY]
INSERT INTO [dbo].[Cities]
([Id],[CityName])
VALUES
(1,'New York'),
(2,'Miami'),
(3,'Orlando')
GO
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + CityName
FROM Cities
SELECT @listStr
Изменить: Также прочитайте этот пост, он содержит несколько подходов, в которых вы можете достичь того, что вы хотите.