SQL Pivot 的花式操作
- 2019 年 12 月 25 日
- 筆記
有趣
今天我們的【有關SQL微信群】提了個高品質的問題。

提問的同學很講究,能用圖描述明白問題,看了就有回答的衝動。
思路
這是經典的行列轉行問題。有些讀者剛看了圖就跳出了文章,實在可惜。經典的行列轉換問題,解決的是圍繞軸做旋轉,這根軸通常明文標識,一眼盡顯。但這裡不明顯。
所以解決這問題的本質,就是找到那根軸,如果沒有就創造一根。

[ Seq ] 就是創造的那根軸, 由 Row_Number 函數自動生成,目的作為一根中心軸,帶動其他列的轉動,且維持了次序。這是核心程式碼思路,如果需要轉的欄位有很多,那麼需要寫函數或者拼接動態 SQL 了,可以自由發揮。
當然,解決此題的最優雅方案肯定不止這一種,有興趣可留言討論。
總結
在之前的文章中,對於 SQL 行列轉換場景我歸結了一句詩:

