Я хотел бы агрегировать значения одного столбца с разделителем между ними и с некоторым префиксом. Ниже приведен код, который работает.
SELECT concat('TNB/IAG/',STRING_AGG(WF_ValStr, '/')) AS Result
FROM wfattrdata where wf_id=35262472 and WF_AttrID in (28,29,30,31,33);
Я мог бы получить ожидаемый результат ниже в последних версиях MSSql.
TNB/IAG/1/2/3/4/5
Как заменить приведенный выше запрос, чтобы он работал в SQL Server 2016?
STRING_AGG
. - person Panagiotis Kanavos   schedule 07.10.2019XML PATH
, описанная в статье Аарона Бертрана. Я не могу не подчеркнуть это достаточно - все ответы, которые вы найдете, взяты из этой статьи. - person Panagiotis Kanavos   schedule 07.10.2019FOR JSON
и получить легко анализируемую строку JSON. Вы можете заменить скобки и кавычки, чтобы получить нужный формат, особенно если вы используетеWITHOUT_ARRAY_WRAPPER
, чтобы избавиться от оболочки массива. - person Panagiotis Kanavos   schedule 07.10.2019