Я новичок в написании SQL-скриптов (по крайней мере, ничего больше, чем SELECT * FROM X). Я столкнулся с проблемой группировки таблицы по одному значению и последующим объединением значений из другого столбца в одну строку.MS SQL - группа по строке concat
Я хотел бы выполнить группу по временной таблице, а затем объединить значения столбца в группе вместе.
Таблица переменная таблицы (изменить), @categoriesToAdd, структура данных [SubscriberId int, CategoryId int].
То, что я пытаюсь сделать что-то вроде (я понимаю, что CONCAT это немного не хватает из MSSQL):
SELECT SubscriberId,
CONCAT(CONVERT(VARCHAR(10), CategoryId) + ', ') as categoriesAdded
FROM @categoriesToAdd
GROUP BY SubscriberId
идентификаторов каскадных категорий для каждого абонента будут выглядеть примерно так: 0001, 0002, 0003, 0004
Спасибо!
Вы искали 'GROUP_CONCAT (MySQL)/LISTAGG (Oracle)/string_agg (Postgresql)' эквивалент для MS SQL Server. Я предлагаю использовать 'STUFF + FOR XML'. Дополнительная информация и сравнение ** [Конкатенирование значений строк в Transact-SQL] (https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/) * * – lad2025