濮阳杆衣贸易有限公司

主頁 > 知識庫 > SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實現(xiàn)

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

熱門標簽:怎么申請400熱線電話 ai電話電話機器人 湖南保險智能外呼系統(tǒng)產(chǎn)品介紹 泗洪正規(guī)電話機器人找哪家 河北便宜電銷機器人軟件 簡單的智能語音電銷機器人 怎么去開發(fā)一個電銷機器人 小程序智能電話機器人 南昌呼叫中心外呼系統(tǒng)哪家好

前言

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

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

行轉(zhuǎn)列

假如我們有下表:

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

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

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

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

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

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

列轉(zhuǎn)行

假設我們有下表 student1

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

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

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

SELECT
  NAME,
  '語文' AS subject ,
  MAX("語文") AS score
FROM student1 GROUP BY NAME
UNION
SELECT
  NAME,
  '數(shù)學' AS subject ,
  MAX("數(shù)學") 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)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實例詳解
  • mysql 列轉(zhuǎn)行,合并字段的方法(必看)
  • mssql 數(shù)據(jù)庫表行轉(zhuǎn)列,列轉(zhuǎn)行終極方案
  • SQL行轉(zhuǎn)列和列轉(zhuǎn)行代碼詳解
  • mysql 列轉(zhuǎn)行的技巧(分享)
  • mysql列轉(zhuǎn)行以及年月分組實例
  • SQL知識點之列轉(zhuǎn)行Unpivot函數(shù)

標簽:荊門 柳州 威海 江蘇 景德鎮(zhèn) 瀘州 那曲 淮安

巨人網(wǎng)絡通訊聲明:本文標題《SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實現(xiàn)》,本文關(guān)鍵詞  SQL,行轉(zhuǎn)列,列轉(zhuǎn),行的,簡單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    德化县| 湖州市| 巴林右旗| 江西省| 龙口市| 博爱县| 正镶白旗| 乌海市| 岗巴县| 凉城县| 洛扎县| 襄城县| 崇义县| 林周县| 当涂县| 巴林左旗| 烟台市| 绥宁县| 北流市| 永昌县| 岳普湖县| 杭锦后旗| 富裕县| 绥化市| 辉南县| 乌海市| 满城县| 高雄市| 巴中市| 利津县| 徐水县| 旅游| 丰顺县| 凤阳县| 贵州省| 柳林县| 拜城县| 二手房| 渝中区| 瑞昌市| 高密市|