Как конкатрировать несколько строк в одну строку в SQL Server 2008?
Как конкатрировать много строк в одну строку?
Query:
SELECT name FROM mytable;
Результат:
name
----
kim
lee
park
cho
Просто я хочу.
name
----
kim,lee,park,cho
невыполнима?
Ответ 1
Попробуйте этот вариант -
DECLARE @temp TABLE (name NVARCHAR(50))
INSERT INTO @temp (name)
VALUES ('kim'),('lee'),('park'),('cho')
SELECT STUFF((
SELECT ',' + name
FROM @temp
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
Выход -
kim,lee,park,cho
Ответ 2
Я работаю над чем-то подобным этим утром, добавив, что дело также будет работать для 1 возвращенной строки. Надеюсь это поможет. Else следуйте по ссылке, которую отправил первый комментарий.
Declare @NameList VarChar(MAX) = ''
select @NameList =
case when @NameList = ''
then coalesce(Name, '')
else @NameList + coalesce(',' + Name, '')
end
from mytable
print @NameList
Бен
Ответ 3
Попробуйте это
SELECT
name= substring((SELECT ( ', ' + Name)
FROM TableName t
FOR XML PATH( '' )
), 3, 1000 ) FROM mytable tn