我想不管哪時候總是能發現些新玩意兒讓我學習

會知道 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語法

arrow
arrow
    文章標籤
    PIVOT SQL
    全站熱搜

    MyWCT 發表在 痞客邦 留言(0) 人氣()