前言
前陣子工作上需求,需要做匯出報表功能,要將不同欄位資料合併再一起後匯出,順手記錄一下。
本文
示範資料表如下
我們需要把相同 Level 的欄位匯總再一起,做成一個統計用報表。
首先每個區域後面先加、
select District+'、' from DistrictData
接下來使用
select level,
(
select District+'、' from DistrictData as B
where A.Level = B.Level
FOR XML PATH('')
)AS District
FROM DistrictData AS A
GROUP BY level
即可得到想要的成果。
其中 FOR XML PATH('')
功能是因為如果沒有加的話會出現以下錯誤訊息。
接下來會發現顯示格式不太對,要加上、的部分最後一筆應該要排除。
這時候就可以使用 SUBSTRING
select SUBSTRING('大安區、信義區、松山區、中山區、中正區、',0,LEN('大安區、信義區、松山區、中山區、中正區、'))
可以得到以下。
SUBSTRING 這個語法中 SUBSTRING(string, start, lenth) ,第1、2個參數代表的是 string 這個字串中要起始的位置為 start , lenth 則為最後要計算數字。
簡單實驗一下
select SUBSTRING('123',0,3)
這邊我們會得到
參考資料
https://www.1keydata.com/tw/sql/sql-substring.html