Sql的行列轉換


創建表scores

一、傳統的行列轉換

縱表轉橫表

我們要轉成的橫表是這樣子的:


pivot是sql server 2005 提供的運算符,所以只要數據庫在05版本以上的都可以使用。主要用於行和列的轉換。

 pivot縱表轉橫表

select
    t2.姓名,
    t2.數學,
    t2.物理,
    t2.語文
from Scores as t1
pivot (sum(分數) for 課程 in(數學,語文,物理)) as t2

pivot將原來表中 課程字段中的 數據行 數學,語文,物理 轉換為列,並用sum取對應列的值。

unpivot 橫表轉縱表

select
     *
 from scores2 unpivot (分數 for 課程 in (語文,數學,物理)) as t3

 unpivot 將 語文,數學,物理 列轉為行,分數為新的一列存放對應的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM