在 SQL Server 2017 出來以前,要做欄位資料合併顯示大都用 FOR XML,SQL Server 2017 加入了一個貼心的語法 STRING_AGG,大幅簡化了原本使用 FOR XML 的語法,我們來看 STRING_AGG 要怎麼使用?
使用我之前用過的範例,假設我有一個資料表 ProductOwner 它長這樣。
而我想要 SELECT 出這樣的結果
用 STRING_AGG 只要這樣下可以了,簡化不少。
SELECT
po.ProductId
,STRING_AGG(po.[Owner], ',') AS Owners
FROM ProductOwner po WITH (NOLOCK)
GROUP BY po.ProductId
STRING_AGG 函式至少要是 SQL Server 2017 或是 Azure SQL Database