我想不管哪時候總是能發現些新玩意兒讓我學習
會知道 PIVOT 主要也是有人給我一張報表,那跟他要 SQL 語法後才知道這個語法
雖然工作抱怨歸抱怨,但能學到新東西總是令人開心的一件事!
那一開始當然我也不知這語法是作啥用的,只是覺得資料集的東西可以轉置成那樣的報表很炫很有趣
而且如果由來我想,我一開始會想到的都是寫程式,沒想到 SQL 本身就有類似的功能的語法了!
講這麼多,那他的作用倒底是什麼呢?舉例而言,有張資料表資料如下
Dateline | Station | Count |
2013-2-1 | Station A | 1 |
2013-2-1 | Station A | 2 |
2013-2-1 | Station A | 3 |
2013-2-1 | Station B | 1 |
2013-2-1 | Station B | 4 |
2013-2-1 | Station C | 3 |
2013-2-2 | Station A | 2 |
2013-2-2 | Station A | 3 |
2013-2-2 | Station B | 1 |
2013-2-3 | Station A | 2 |
他可以將輸出轉置成類似像下面的表格
Dateline | Station A | Station B | Station C |
2013-2-1 | 6 | 5 | 3 |
2013-2-2 | 5 | 1 | NULL |
2013-2-3 | 2 | NULL | NULL |
這樣的結果就會是一般人想看的報表結果了,那語法為何呢?大致上如下
這樣的語法就能產生像上面的報表結果了,其中 PRVOT 裡面可以用的是彙總函數,像是 Count, Sum, Avg 等等。
而 Unpivot 的作用則是將表 2 轉回表 1 的結果,有興趣可以觀看參考連結。
參考網頁:
http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx
T-SQL PIVOT語法剖析與實戰
[T-SQL] Pivot語法
文章標籤
全站熱搜
留言列表