объединяющая строка - PullRequest
       3

объединяющая строка

3 голосов
/ 26 октября 2010

Есть ли способ в SQL-сервере, который может записать вывод следующим образом:

select events
  from mytable

оригинальный вывод

events
--------
123456
894531
985233
829292
920202
392939
299223

желаемый вывод

'123456', '894531','985233','829292','920202','392939','299223'

выберите '' + CustomerID + ',' от dbo.Customers Пользовательский ИД ALFKI, ANATR, АНТОН, AROUT, BERGS,

Хотелось бы видеть результат как Пользовательский ИД 'ALFKI', 'ANATR', «АНТОН», 'AROUT', 'BERGS', и так далее ...

Ответы [ 2 ]

5 голосов
/ 26 октября 2010
SELECT
  STUFF(
    (SELECT
      ', ' + events
     FROM dbo.mytable
     FOR XML PATH('')
    ), 1, 1, '') As concatenated_string

Если вы хотите, чтобы значения заключались в одинарные кавычки, отредактируйте заполнение выше.

3 голосов
/ 26 октября 2010

Конкатенация значений строк в Transact-SQL обсуждает различные имеющиеся у вас варианты, такие как рекурсивный CTE, blackbox XML (например, решение Mitch), CLR, курсоры, рекурсивные скалярные UDF и т. Д., А также некоторые ненадежные, но быстрые подходы (SELECT с переменной конкатенацией).

...