最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

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

行轉(zhuǎn)列

假如我們有下表:

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

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

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

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

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

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

列轉(zhuǎn)行

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

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

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

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

SELECT
  NAME,
  '語(yǔ)文' AS subject ,
  MAX("語(yǔ)文") 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,
  '英語(yǔ)' AS subject ,
  MAX("英語(yǔ)") AS score
FROM student1 GROUP BY NAME

總結(jié)

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

相關(guān)文章

  • 關(guān)于數(shù)據(jù)庫(kù)性能優(yōu)化中的表結(jié)構(gòu)優(yōu)化

    關(guān)于數(shù)據(jù)庫(kù)性能優(yōu)化中的表結(jié)構(gòu)優(yōu)化

    這篇文章主要介紹了關(guān)于數(shù)據(jù)庫(kù)性能優(yōu)化中的表結(jié)構(gòu)優(yōu)化,合理的表結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)庫(kù)的查詢(xún)效率和性能,而不合理的表結(jié)構(gòu)設(shè)計(jì)則可能導(dǎo)致查詢(xún)效率低下、數(shù)據(jù)冗余、數(shù)據(jù)不一致等問(wèn)題,需要的朋友可以參考下
    2023-07-07
  • 有效防止sql注入的方法演示

    有效防止sql注入的方法演示

    這篇文章主要給大家介紹了關(guān)于有效防止sql注入的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用sql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Mybatis查詢(xún)延遲加載詳解及實(shí)例

    Mybatis查詢(xún)延遲加載詳解及實(shí)例

    這篇文章主要介紹了Mybatis查詢(xún)延遲加載詳解及實(shí)例的相關(guān)資料,Mybatis的延遲加載默認(rèn)是關(guān)閉的,即默認(rèn)是一次就將所有的嵌套SQL一并查了將對(duì)象所有的信息都查詢(xún)出來(lái)。開(kāi)啟延遲加載有兩種方式,需要的朋友可以參考下
    2017-01-01
  • SQL注入詳解及防范方法

    SQL注入詳解及防范方法

    本文詳細(xì)講解了SQL注入及防范方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • NoSQL 數(shù)據(jù)庫(kù)你應(yīng)該了解的 10 件事

    NoSQL 數(shù)據(jù)庫(kù)你應(yīng)該了解的 10 件事

    NoSQL 數(shù)據(jù)庫(kù)通常使用廉價(jià)服務(wù)器集群去管理迅猛發(fā)展的數(shù)據(jù)和交易容量,而 RDBMS 傾向依賴(lài)昂貴的專(zhuān)業(yè)服務(wù)器和存儲(chǔ)系統(tǒng)。結(jié)果就是,NoSQL 系統(tǒng)的每千兆字節(jié)成本或者每秒的交易成本要很多倍的低于 RDBMS 系統(tǒng),這使得你可以非常低的成本去存儲(chǔ)和處理更多的數(shù)據(jù)。
    2016-04-04
  • sql Union和Union All的使用方法

    sql Union和Union All的使用方法

    UNION指令的目的是將兩個(gè)SQL語(yǔ)句的結(jié)果合并起來(lái)。從這個(gè)角度來(lái)看, 我們會(huì)產(chǎn)生這樣的感覺(jué),UNION跟JOIN似乎有些許類(lèi)似,因?yàn)檫@兩個(gè)指令都可以由多個(gè)表格中擷取資料。
    2009-07-07
  • SQL查詢(xún)的底層運(yùn)行原理深入分析

    SQL查詢(xún)的底層運(yùn)行原理深入分析

    這篇文章主要給大家介紹了關(guān)于SQL查詢(xún)的底層運(yùn)行原理,文中通過(guò)實(shí)例代碼結(jié)束的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • SQLServer中exists和except用法介紹

    SQLServer中exists和except用法介紹

    大家好,本篇文章主要講的是SQLServer中exists和except用法介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下哦
    2021-12-12
  • Spring集成MyBatis完整實(shí)例(分享)

    Spring集成MyBatis完整實(shí)例(分享)

    下面小編就為大家?guī)?lái)一篇Spring集成MyBatis完整實(shí)例(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 由拖庫(kù)攻擊談口令字段的加密策略(數(shù)據(jù)庫(kù)加密)

    由拖庫(kù)攻擊談口令字段的加密策略(數(shù)據(jù)庫(kù)加密)

    我不得不慘痛地寫(xiě)在前面的是,這是一個(gè)安全崩盤(pán)的時(shí)代。過(guò)去一年,已經(jīng)證實(shí)的遭遇入侵、并導(dǎo)致關(guān)鍵數(shù)據(jù)被竊或者被泄露的公司,包括索尼、世嘉這樣的大型游戲設(shè)備廠商;包括花旗銀行這樣的金融機(jī)構(gòu),也包括了RSA這樣的安全廠商
    2012-01-01

最新評(píng)論

安平县| 宣汉县| 清水河县| 观塘区| 寿宁县| 井研县| 高雄市| 温泉县| 镇坪县| 东宁县| 洪雅县| 抚顺市| 凉城县| 阜宁县| 洛川县| 桐柏县| 旅游| 淮北市| 澎湖县| 乐安县| 乐东| 浦县| 萨迦县| 合阳县| 绥芬河市| 五河县| 东城区| 江阴市| 武安市| 南阳市| 伊川县| 黑山县| 深州市| 大连市| 板桥市| 龙州县| 靖江市| 龙游县| 长宁县| 大余县| 崇仁县|