Конкатенация строк оператора SQL - PullRequest
1 голос
/ 05 декабря 2009

Можно ли что-то подобное сделать с помощью оператора select:

SELECT col1, concat(col2 + ' ') FROM ....
       GROUP BY col1

Я знаю, что могу использовать count (col2) или sum (col2) для целых чисел, но есть ли функция для конкатенации, если тип nvarchar или nchar?

Ответы [ 3 ]

4 голосов
/ 05 декабря 2009

В SQL Server, если вы хотите объединить строки, нет встроенной функции для этого.

Лично мне нравится с использованием XML PATH , поскольку, похоже, он работает хорошо, но это будет работать только в SQL Server 2005 и далее

SELECT
  STUFF(
    (
    SELECT
      ' ' + Description
    FROM dbo.Brands
    FOR XML PATH('')
    ), 1, 1, ''
  ) As concatenated_string
1 голос
/ 05 декабря 2009

Оператор + используется для объединения строк в T-SQL.

EDIT:

Если вы хотите объединить строки по нескольким строкам , это может помочь .

0 голосов
/ 05 декабря 2009

При использовании Sql Server нет встроенной функции агрегирования конкатенации, я знаю, что в MySql есть такая, которая называется group_concat.

Sql Server, вам либо придется написать собственную функцию масштабирования, либо функцию CLR для достижения этой цели.

Или вы можете использовать курсор, чтобы сделать это для вас, с таблицей var для возврата результатов. Я могу привести пример, если хотите.

...