Как объединить все записи в столбце, возвращенном запросом, в одну строку varchar в T-SQL? - PullRequest
4 голосов
/ 10 мая 2010

Запрос (SELECT / FUNCTION / VIEW / PROCEDURE) возвращает столбец записей varchar. Мне нужно объединить их все в одну единственную строку. Как мне лучше всего это сделать в T-SQL?

Ответы [ 4 ]

6 голосов
/ 10 мая 2010
declare @s varchar(8000)
select @s = coalesce(@s + ', ' + col, col) from tbl
4 голосов
/ 10 мая 2010
DECLARE @Concat varchar(MAX)

SELECT @Concat = ''

SELECT @Concat = @ConCat + IsNull(Field1, '')
FROM Table1

SELECT @Concat

Это вернет единственное значение, которое является объединением каждого значения Field1. Часть IsNull будет означать, что значения NULL не мешают. Конечно, если вы не используете SQL Server 2005 или более позднюю версию, тогда вы не сможете использовать varchar (MAX), и число объединяемых записей станет проблемой быстрее.

2 голосов
/ 10 мая 2010

Существуют различные способы для объединения значений строк в Transact-SQL.

0 голосов
/ 19 февраля 2015

Добавление разделителя запятых ...

DECLARE @Concat VARCHAR(MAX)

SET @Concat = ''

SELECT  @Concat = @Concat + LEFT(',', LEN(@Concat)) + ISNULL(Field, '') FROM    dbo.Table

SELECT  @Concat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...