[小菜一碟] SQL Server FOR XML 退休,欄位資料合併讓 STRING_AGG 來。

在 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

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學