在 VFP AP 端有個備註欄位讓使用者進行輸入,使用者輸入時有使用到換行,導致使用 for xml path 來群組字串時,報表出現換行符號,如下圖
Product 環境 SQL Server 升級後,有 STRING_AGG 可以取代使用,但還是特別去查 for xml path 要如何避免該問題,從 Handling special characters with FOR XML PATH(”) 內查到解決方式,沒有特別去深入研究,單純紀錄而已
以 [SQL] 群組字串連結 文章內範例來示意並記錄,語法修正如下
SELECT
Date AS 日期,
DATENAME(dw,Date) AS 星期 ,
(
STUFF
(
(
SELECT ',' + EmpName
FROM Leave T2
WHERE T2.Date = T1.Date
FOR XML PATH('') , ROOT('StringAgg') , TYPE -- 重點
).value('/StringAgg[1]' , 'varchar(max)') -- 重點
, 1 , 1 , ''
)
) AS [請假人員]
FROM Leave T1
GROUP BY Date
希望未來沒有機會再使用 for xml path 來進行群組字串
沒有留言:
張貼留言