麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > 文庫 > 正文

SQL行轉列、列轉行的簡單實現

2020-10-29 21:45:54
字體:
來源:轉載
供稿:網友

前言

行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。

行列轉換就是如下圖所示兩種展示形式的互相轉換

行轉列

假如我們有下表:

SELECT *FROM studentPIVOT ( SUM(score) FOR subject IN (語文, 數學, 英語))

通過上面 SQL 語句即可得到下面的結果

PIVOT 后跟一個聚合函數來拿到結果,FOR 后面跟的科目是我們要轉換的列,這樣的話科目中的語文、數學、英語就就被轉換為列。IN 后面跟的就是具體的科目值。

當然我們也可以用 CASE WHEN 得到同樣的結果,就是寫起來麻煩一點。

SELECT name, MAX( CASE WHEN subject='語文' THEN score ELSE 0 END) AS "語文", MAX( CASE WHEN subject='數學' THEN score ELSE 0 END) AS "數學", MAX( CASE WHEN subject='英語' THEN score ELSE 0 END) AS "英語"FROM studentGROUP BY name

使用 CASE WHEN 可以得到和 PIVOT 同樣的結果,沒有 PIVOT 簡單直觀。

列轉行

假設我們有下表 student1

SELECT *FROM student1UNPIVOT (  score FOR subject IN ("語文","數學","英語"))

通過 UNPIVOT 即可得到如下結果:

我們也可以使用下面方法得到同樣結果

SELECT  NAME,  '語文' AS subject ,  MAX("語文") AS scoreFROM student1 GROUP BY NAMEUNIONSELECT  NAME,  '數學' AS subject ,  MAX("數學") AS scoreFROM student1 GROUP BY NAMEUNIONSELECT  NAME,  '英語' AS subject ,  MAX("英語") AS scoreFROM student1 GROUP BY NAME

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜精品久久久久久中宇 | 九九热免费视频在线观看 | 在线观看免费精品 | 日韩av日韩 | 色综av| 青青草免费观看 | 国产精品久久久久久久hd | 亚洲精品在线观看免费 | 久久久久久三区 | 国色天香综合网 | 久久精品a一级国产免视看成人 | 国产精品久久久久久久久久久天堂 | 久久免费观看一级毛片 | 欧美成人视 | 在线看小早川怜子av | 成人午夜视频在线观看 | 国产91av视频| 草碰人人 | 日韩在线播放第一页 | 欧美视频一二三区 | 在线成人免费av | 九色p| 性生活视频一级 | 久久国产精品久久久久久电车 | 蜜桃网站在线观看 | 亚洲成人精品国产 | 色综av| 娇妻被各种姿势c到高潮小说 | 日本中文字幕高清 | 中文字幕精品在线视频 | 久久成人福利 | qyl在线视频精品免费观看 | 亚洲午夜久久久精品一区二区三区 | 国产午夜精品一区二区三区嫩草 | 中文字幕在线观看91 | 国产成人在线观看网站 | 午夜视频久久久 | 成码无人av片在线观看网站 | 国av在线 | 日本成人在线播放 | 精精国产xxxx视频在线野外 |