Devdrama

О сайте

Конкатенация строк при группировке in english

10 Apr 2014

Это ещё одна функция, которая может значительно облегчить жизнь разработчику.

Слепим много кортежей в одну строку

Сравним два запроса:

Two queries

Как видите, второй запрос агрегирует значения по правилу в GROUP BY.

Что нам это даёт? Посмотрим:

Strings concatenated in aggregate

Отлично.

Более того, хотите составить динамический запрос по копированию данных из одной таблицы в другую? Просто перечисляйте колонки отсюда вкупе с любым INSERT и SELECT.

Откуда ноги растут

Оригинальный код взят здесь. В сообщении практически разжёван механизм агрегирования в MS SQL для CLR:

В чём разница?

Механизм работал не всегда. Вы ожидали, что он вернёт a,b,c,d,e,f, но он выдавал a,b,cd,e,f — по странным причинам. Это проявлялось на объёмных выборках: есть предположение, что замешана многопоточность. Решилось копированием разделителя из соседних групп.

Свойства функции:

Если считаете функцию полезной, добро пожаловать.

sql clr