我是新編寫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