兩表關聯 (AdminID),主表 `資源表`、明細表 `資源跟蹤表`。需導出:每筆主表記錄合併所有關聯明細 `Content` 為單一欄位。
SELECT
r.name,
r.adminid,
(SELECT t.Content
FROM 資源跟蹤表 t
WHERE t.adminid = r.adminid
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)') AS Content
FROM 資源表 r;
FOR XML PATH(''):將查詢結果轉為 XML,空路徑表示**無標籤包裹**,直接拼接字串。TYPE:回傳 `xml` 型別而非 `nvarchar`,避免特殊字元 (如 `&` `<` `>`) 被編碼。.value('.', 'NVARCHAR(MAX)'):將 XML 型別轉回字串。SELECT
r.name,
r.adminid,
STRING_AGG(t.Content, '') AS Content
FROM 資源表 r
JOIN 資源跟蹤表 t ON t.adminid = r.adminid
GROUP BY r.name, r.adminid;
`STRING_AGG` 語法更簡潔、效能更佳,建議新版本優先使用。