淺析SQL語(yǔ)句行列轉(zhuǎn)換的兩種方法 case...when與pivot函數(shù)的應(yīng)用
/*創(chuàng)建數(shù)據(jù)庫(kù)*/
CREATE DATABASE tmp
go
USE tmp
go
/*創(chuàng)建數(shù)據(jù)庫(kù)測(cè)試表*/
CREATE TABLE [Scores]
(
[ID] INT IDENTITY(1, 1)
PRIMARY KEY ,
[Student] VARCHAR(20) ,
[Subject] VARCHAR(30) ,
[Score] FLOAT
)
go
TRUNCATE TABLE Scores
/*插入數(shù)據(jù)庫(kù)測(cè)試數(shù)據(jù)信息*/
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test001', '語(yǔ)文', '90' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test001', '英語(yǔ)', '85' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'text002', '語(yǔ)文', '90' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'text002', '英語(yǔ)', '80' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test003', '語(yǔ)文', '95' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test003', '英語(yǔ)', '85' )
/*1. case when .......then else ....end 用法,行列轉(zhuǎn)換*/
SELECT Student AS '姓名' ,
MAX(CASE Subject
WHEN '語(yǔ)文' THEN Score
ELSE 0
END) AS '語(yǔ)文' ,--如果這個(gè)行是“語(yǔ)文”,就選此行作為列
MAX(CASE Subject
WHEN '英語(yǔ)' THEN Score
ELSE 0
END) AS '英語(yǔ)'
FROM Scores
GROUP BY Student
ORDER BY Student
/*2. pivot(聚合函數(shù)(要轉(zhuǎn)成列值的列名)
for 要轉(zhuǎn)換的列
in(目標(biāo)列名)
)*/
SELECT Student AS '姓名' ,
AVG(語(yǔ)文) AS '語(yǔ)文' ,
AVG(英語(yǔ)) AS '英語(yǔ)'
FROM Scores PIVOT( AVG(Score) FOR Subject IN ( 語(yǔ)文, 英語(yǔ) ) )as NewScores
GROUP BY Student
ORDER BY Student ASC
相關(guān)文章
JMeter對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行壓力測(cè)試的實(shí)現(xiàn)步驟
本文主要介紹了JMeter對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行壓力測(cè)試的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
mysql遷移至8.0時(shí)的注意事項(xiàng)(小結(jié))
這篇文章主要介紹了mysql遷移至8.0時(shí)的注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
mysql中刪除數(shù)據(jù)的四種方法小結(jié)
在MySQL數(shù)據(jù)庫(kù)中,刪除數(shù)據(jù)是一個(gè)常見(jiàn)的操作,它允許從表中移除不再需要的數(shù)據(jù),本文就來(lái)介紹一下四種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Windows下MySQL 5.6安裝及配置詳細(xì)圖解(大圖版)
這篇文章主要介紹了Windows下MySQL 5.6安裝及配置詳細(xì)圖解(大圖版),需要的朋友可以參考下2016-04-04
使用MySQL唯一索引的注意事項(xiàng)及說(shuō)明
這篇文章主要介紹了使用MySQL唯一索引的注意事項(xiàng)及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
MySQL如何實(shí)現(xiàn)快速插入大量測(cè)試數(shù)據(jù)
這篇文章主要介紹了MySQL如何實(shí)現(xiàn)快速插入大量測(cè)試數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
mysql8.0.11安裝配置方法圖文教程 MySQL8.0新密碼認(rèn)證方式
這篇文章主要為大家詳細(xì)介紹了mysql8.0.11安裝配置方法圖文教程,以及MySQL8.0新密碼認(rèn)證方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11

