Что это и зачем? Посмотрите на картинку. К сожалению, Sql Server не содержит встроенной аггрегирующей функции, позволяющей преобразовать данные подобным образом:
Как оказалось, реализовать этот функционал можно массой способов:
Concatenating Row Values in Transact-SQL
Масштабный обзор способов объединения строк в SQL Server.
String aggregation in the SQL Server world
Обзор-сравнение скорости работы курсоров и XPath.
GROUP_CONCAT string aggregate for SQL Server
Вариант "установил и забыл". Проект, добавляющий аггрегирующую функцию GROUP_CONCAT, иначе говоря SQLCLR User-defined Aggregate function (SQLCLR UDA).
Плюсы:
- простота установки (достаточно выполнить один SQL скрипт);
- скорость работы (по заявлениям авторов, сравнимая с XPath);
- реюзабельность.
SELECT Foo ,dbo.GROUP_CONCAT(Bar) FROM GroupConcatTest GROUP BY Foo
Комментариев нет:
Отправить комментарий