Как получить значения столбца в одном значении через запятую без использования пути 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

Изменить: Также прочитайте этот пост, он содержит несколько подходов, в которых вы можете достичь того, что вы хотите.

http://www.sqlmatters.com/Articles/Converting%20row%20values%20in%20a%20table%20to%20a%20single%20concatenated%20string.aspx

Другие вопросы по тегам