文章詳情頁
SQL如何實現橫表與縱表相互轉換
瀏覽:187日期:2023-05-02 10:03:21
目錄
- 一、橫表簡單概述
- 二、縱表簡單概述
- 三、縱表轉橫表代碼如下以及視圖展示
- 四、橫表轉縱表代碼如下以及視圖展示
- 五、橫表、縱表優點與缺點
- 六、總結
一、橫表簡單概述
橫表是普通的建表方式。例如:表結構為主鍵、字段1、字段2、字段3…。
二、縱表簡單概述
縱表的表結構為主鍵、字段代碼、字段值,字段代碼則為字段1、字段2、字段3…。
三、縱表轉橫表代碼如下以及視圖展示
1.縱表視圖如下:
2.縱表轉換成橫表視圖如下:
3.sql語句如下所示:
select student_name, sum(case ts.subject when "C語言" then ts.score else "" end) as C語言, sum(case ts.subject when "數據結構" then ts.score else "" end) as 數據結構, sum(case ts.subject when "操作系統" then ts.score else "" end) as 操作系統from t_student tsgroup by ts.student_name;
四、橫表轉縱表代碼如下以及視圖展示
1.橫表視圖如下:
2.橫表轉換成縱表視圖如下:
3.sql語句如下所示:
select ts.studnet_name,"C語言" as 科目,ts.`C語言` as 成績from t_student1 tsunion allselect ts.studnet_name,"數據結構" as 科目,ts.`數據結構` as 成績from t_student1 tsunion allselect ts.studnet_name,"操作系統" as 科目,ts.`操作系統` as 成績from t_student1 tsorder by studnet_name,科目
五、橫表、縱表優點與缺點
1.橫表
優點:一行表示了一個實體記錄,清晰可見。
缺點:如果現在要給這個表加一個字段,那么就必須重建表結構。
2.縱表
優點:如果現在要給這個表加一個字段,只需要添加一些記錄。
缺點:數據描述不是很清晰,而且會造成數據庫數據很多。另如果需要分組統計,要先group by,較繁瑣
六、總結
應該把不容易改動表結構的設計成橫表,把容易經常改動不確定的表結構設計成縱表。
到此這篇關于SQL如何實現橫表與縱表相互轉換的文章就介紹到這了,更多相關SQL 橫表與縱表轉換內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
標簽:
MsSQL
排行榜
