久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SQL如何實(shí)現(xiàn)橫表與縱表相互轉(zhuǎn)換

瀏覽:223日期:2023-05-02 10:03:21
目錄
  • 一、橫表簡(jiǎn)單概述
  • 二、縱表簡(jiǎn)單概述
  • 三、縱表轉(zhuǎn)橫表代碼如下以及視圖展示
  • 四、橫表轉(zhuǎn)縱表代碼如下以及視圖展示
  • 五、橫表、縱表優(yōu)點(diǎn)與缺點(diǎn)
  • 六、總結(jié)

一、橫表簡(jiǎn)單概述

橫表是普通的建表方式。例如:表結(jié)構(gòu)為主鍵、字段1、字段2、字段3…。

二、縱表簡(jiǎn)單概述

縱表的表結(jié)構(gòu)為主鍵、字段代碼、字段值,字段代碼則為字段1、字段2、字段3…。

三、縱表轉(zhuǎn)橫表代碼如下以及視圖展示

1.縱表視圖如下:

2.縱表轉(zhuǎn)換成橫表視圖如下:

3.sql語(yǔ)句如下所示:

select student_name,	sum(case ts.subject when "C語(yǔ)言" then ts.score else "" end) as C語(yǔ)言,	sum(case ts.subject when "數(shù)據(jù)結(jié)構(gòu)" then ts.score else "" end) as 數(shù)據(jù)結(jié)構(gòu),	sum(case ts.subject when "操作系統(tǒng)" then ts.score else "" end) as 操作系統(tǒng)from t_student tsgroup by ts.student_name;

四、橫表轉(zhuǎn)縱表代碼如下以及視圖展示

1.橫表視圖如下:

2.橫表轉(zhuǎn)換成縱表視圖如下:

3.sql語(yǔ)句如下所示:

select ts.studnet_name,"C語(yǔ)言" as 科目,ts.`C語(yǔ)言` as 成績(jī)from t_student1 tsunion allselect ts.studnet_name,"數(shù)據(jù)結(jié)構(gòu)" as 科目,ts.`數(shù)據(jù)結(jié)構(gòu)` as 成績(jī)from t_student1 tsunion allselect ts.studnet_name,"操作系統(tǒng)" as 科目,ts.`操作系統(tǒng)` as 成績(jī)from t_student1 tsorder by studnet_name,科目

五、橫表、縱表優(yōu)點(diǎn)與缺點(diǎn)

1.橫表
優(yōu)點(diǎn):一行表示了一個(gè)實(shí)體記錄,清晰可見。
缺點(diǎn):如果現(xiàn)在要給這個(gè)表加一個(gè)字段,那么就必須重建表結(jié)構(gòu)。

2.縱表
優(yōu)點(diǎn):如果現(xiàn)在要給這個(gè)表加一個(gè)字段,只需要添加一些記錄。
缺點(diǎn):數(shù)據(jù)描述不是很清晰,而且會(huì)造成數(shù)據(jù)庫(kù)數(shù)據(jù)很多。另如果需要分組統(tǒng)計(jì),要先group by,較繁瑣

六、總結(jié)

應(yīng)該把不容易改動(dòng)表結(jié)構(gòu)的設(shè)計(jì)成橫表,把容易經(jīng)常改動(dòng)不確定的表結(jié)構(gòu)設(shè)計(jì)成縱表。

到此這篇關(guān)于SQL如何實(shí)現(xiàn)橫表與縱表相互轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)SQL 橫表與縱表轉(zhuǎn)換內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
主站蜘蛛池模板: 九台市| 霞浦县| 安龙县| 岳西县| 福贡县| 麟游县| 田阳县| 林周县| 鹰潭市| 丰城市| 赤城县| 万盛区| 南陵县| 依兰县| 大姚县| 汉寿县| 澳门| 泸西县| 沿河| 镇康县| 嵊泗县| 清涧县| 龙泉市| 松溪县| 南部县| 和顺县| 舒城县| 丹棱县| 吴川市| 香格里拉县| 涡阳县| 灵丘县| 如东县| 淳安县| 北安市| 泽普县| 南郑县| 德安县| 楚雄市| 林口县| 宜阳县|