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

Как видите, второй запрос агрегирует значения по правилу в GROUP BY.
Что нам это даёт? Посмотрим:

Отлично.
Более того, хотите составить динамический запрос по копированию данных из одной таблицы в другую? Просто перечисляйте колонки отсюда вкупе с любым INSERT и SELECT.
Откуда ноги растут
Оригинальный код взят здесь. В сообщении практически разжёван механизм агрегирования в MS SQL для CLR:
initновой группы;accumulateновых значений;mergeс группой;terminateгруппу;readиwriteдля сериализации.
В чём разница?
Механизм работал не всегда. Вы ожидали, что он вернёт a,b,c,d,e,f, но он выдавал a,b,cd,e,f — по странным причинам. Это проявлялось на объёмных выборках: есть предположение, что замешана многопоточность. Решилось копированием разделителя из соседних групп.
Свойства функции:
IsInvariantToNulls = true: пустые значения не влияют на результатIsInvariantToDuplicates = false: дубликаты влияют на результатIsInvariantToOrder = false: порядок влияет на результат
Если считаете функцию полезной, добро пожаловать.