我是新编写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
的每个用户级联类别ID会看起来像: 0001, 0002,0003,0004
谢谢!
您搜索'GROUP_CONCAT(MySQL的)/ LISTAGG(甲骨文)/ 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