亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實(shí)現(xiàn)

 更新時(shí)間:2019年05月19日 10:36:32   作者:李英杰同學(xué)  
這篇文章主要給大家介紹了關(guān)于SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

行列轉(zhuǎn)換在做報(bào)表分析時(shí)還是經(jīng)常會(huì)遇到的,今天就說一下如何實(shí)現(xiàn)行列轉(zhuǎn)換吧。

行列轉(zhuǎn)換就是如下圖所示兩種展示形式的互相轉(zhuǎn)換

行轉(zhuǎn)列

假如我們有下表:

SELECT *
FROM student
PIVOT (
 SUM(score) FOR subject IN (語文, 數(shù)學(xué), 英語)
)

通過上面 SQL 語句即可得到下面的結(jié)果

PIVOT 后跟一個(gè)聚合函數(shù)來拿到結(jié)果,F(xiàn)OR 后面跟的科目是我們要轉(zhuǎn)換的列,這樣的話科目中的語文、數(shù)學(xué)、英語就就被轉(zhuǎn)換為列。IN 后面跟的就是具體的科目值。

當(dāng)然我們也可以用 CASE WHEN 得到同樣的結(jié)果,就是寫起來麻煩一點(diǎn)。

SELECT name,
 MAX(
 CASE
 WHEN subject='語文'
 THEN score
 ELSE 0
 END) AS "語文",
 MAX(
 CASE
 WHEN subject='數(shù)學(xué)'
 THEN score
 ELSE 0
 END) AS "數(shù)學(xué)",
 MAX(
 CASE
 WHEN subject='英語'
 THEN score
 ELSE 0
 END) AS "英語"
FROM student
GROUP BY name

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

列轉(zhuǎn)行

假設(shè)我們有下表 student1

SELECT *
FROM student1
UNPIVOT (
  score FOR subject IN ("語文","數(shù)學(xué)","英語")
)

通過 UNPIVOT 即可得到如下結(jié)果:

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

SELECT
  NAME,
  '語文' AS subject ,
  MAX("語文") AS score
FROM student1 GROUP BY NAME
UNION
SELECT
  NAME,
  '數(shù)學(xué)' AS subject ,
  MAX("數(shù)學(xué)") AS score
FROM student1 GROUP BY NAME
UNION
SELECT
  NAME,
  '英語' AS subject ,
  MAX("英語") AS score
FROM student1 GROUP BY NAME

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 14種SQL的進(jìn)階用法分享(更高效地處理數(shù)據(jù))

    14種SQL的進(jìn)階用法分享(更高效地處理數(shù)據(jù))

    在實(shí)際的數(shù)據(jù)庫使用中除了CRUD還有很多高級應(yīng)用值得學(xué)習(xí)和掌握,能夠在平時(shí)的工作中得到很多便利,這篇文章主要給大家分享介紹了14種SQL的進(jìn)階用法,通過文中介紹的方法可以更高效地處理數(shù)據(jù)庫數(shù)據(jù),需要的朋友可以參考下
    2024-01-01
  • 淺析GBase8s?唯一索引與非唯一索引問題

    淺析GBase8s?唯一索引與非唯一索引問題

    GBase8s中主鍵(PRIMARY?KEY)會(huì)自動(dòng)創(chuàng)建一個(gè)唯一索引。一個(gè)良好的表設(shè)計(jì)都應(yīng)該定義主鍵或者唯一約束索引。特別是在OLTP系統(tǒng)中,唯一索引可以幫助快速定位少量記錄,對GBase8s?索引相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-02-02
  • 實(shí)例介紹SQL注入以及如何解決

    實(shí)例介紹SQL注入以及如何解決

    這篇文章主要給大家介紹了關(guān)于SQL注入以及如何解決的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 詳解SQL中Group By的使用教程

    詳解SQL中Group By的使用教程

    這篇文章主要介紹了SQL中Group By的使用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 介紹PostgreSQL中的jsonb數(shù)據(jù)類型

    介紹PostgreSQL中的jsonb數(shù)據(jù)類型

    這篇文章主要介紹了介紹PostgreSQL中的jsonb數(shù)據(jù)類型,jsonb是PostgreSQL9.4中開始內(nèi)置的類型,能夠支持GIN索引,需要的朋友可以參考下
    2015-04-04
  • sql中l(wèi)eft join的效率分析與提高效率方法

    sql中l(wèi)eft join的效率分析與提高效率方法

    網(wǎng)站隨著數(shù)據(jù)量與訪問量越來越大,訪問的速度變的越來越慢,于是開始想辦法解決優(yōu)化速度慢的原因,下面是對程序中一條sql的分析與提高效率的過程
    2018-03-03
  • 數(shù)據(jù)庫分頁查詢語句數(shù)據(jù)庫查詢

    數(shù)據(jù)庫分頁查詢語句數(shù)據(jù)庫查詢

    關(guān)于分頁 SQL 的資料許多,有的使用存儲(chǔ)過程,有的使用游標(biāo)。本人不喜歡使用游標(biāo),我覺得它耗資、效率低;使用存儲(chǔ)過程是個(gè)不錯(cuò)的選擇,因?yàn)榇鎯?chǔ)過程是顛末預(yù)編譯的,執(zhí)行效率高,也更靈活
    2014-08-08
  • navicat如何執(zhí)行.sql文件

    navicat如何執(zhí)行.sql文件

    這篇文章主要介紹了navicat如何執(zhí)行.sql文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • mysql、mssql及oracle分頁查詢方法詳解

    mysql、mssql及oracle分頁查詢方法詳解

    這篇文章主要介紹了mysql、mssql及oracle分頁查詢方法,實(shí)例分析了數(shù)據(jù)庫分頁的實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 數(shù)據(jù)庫中的左連接(left join)和右連接(right join)區(qū)別

    數(shù)據(jù)庫中的左連接(left join)和右連接(right join)區(qū)別

    關(guān)于左連接和右連接總結(jié)性的一句話,左連接 where只影向右表,右連接where只影響左表
    2012-06-06

最新評論