Создать varchar из результата SELECT - PullRequest
4 голосов
/ 15 июня 2011
DECLARE @result varchar(MAX)

SELECT 
  NAME
FROM
  Table
WHERE
  ID = @Id

Мне нужно заполнить @result именами результатов, разделенными ','.
Например, если SELECT возвращает «A», «B» и «C», @result должно быть «A, B, C».
Это Microsoft SQL Server 2008.

Ответы [ 4 ]

9 голосов
/ 15 июня 2011
DECLARE @result varchar(MAX)
SET @result = '';

SELECT 
  @result = @result + NAME + ','
FROM
  Table
WHERE
  ID = @Id

SET @result = SUBSTRING(@result, 1, LEN(@result) - 1)

SELECT @result

Наслаждайтесь: D

1 голос
/ 15 июня 2011
DECLARE @CSV varchar(max)

SET @CSV = ''

SELECT @CSV = @CSV + Col1 + ',' FROM Table WHERE ...

SET @CSV = LEFT(@CSV, LEN(@CSV) -1)

PRINT @CSV
0 голосов
/ 15 июня 2011

ОБЪЯВИТЬ @Contribution AS VARCHAR (МАКС.) SET @Contribution = ( SELECT RTRIM (Ltrim (C.strname)) + '; ' ОТ ТБЛ М ВНУТРЕННЕЕ СОЕДИНЕНИЕ tbl2 ON tbl2.ID = tbl.CID ГДЕ M.PID = @ PID ПОРЯДОК C.Orderby ДЛЯ ПУТИ XML ('') )

Печать @ Вклад

0 голосов
/ 15 июня 2011

Попробуйте это

declare @result varchar(max)

select @result = COALESCE(@result + ', ', '') + name
from table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...