《MysqL教程浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用》要点:
本文介绍了MysqL教程浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用,希望对您有用。如果有疑问,可以联系我们。
MysqL必读/*创建数据库*/
CREATE DATABASE tmp
go
USE tmp
go
MysqL必读/*创建数据库测试表*/
CREATE table [scores]
(
[ID] INT IDENTITY(1,1)
PRIMARY KEY,
[Student] VARCHAR(20),
[Subject] VARCHAR(30),
[score] float
)
MysqL必读go
MysqL必读TruncATE table scores
/*插入数据库测试数据信息*/
INSERT INTO scores
( Student,Subject,score )
VALUES ( 'test001','语文','90' )
INSERT INTO scores
( Student,'英语','85' )
INSERT INTO scores
( Student,score )
VALUES ( 'text002','80' )
INSERT INTO scores
( Student,score )
VALUES ( 'test003','95' )
INSERT INTO scores
( Student,'85' )
MysqL必读/*1. case when .......then else ....end 用法,行列转换*/
SELECT Student AS '姓名',
MAX(CASE Subject
WHEN '语文' THEN score
ELSE 0
END) AS '语文',--如果这个行是“语文”,就选此行作为列
MAX(CASE Subject
WHEN '英语' THEN score
ELSE 0
END) AS '英语'
FROM scores
GROUP BY Student
ORDER BY Student
MysqL必读/*2. pivot(聚合函数(要转成列值的列名)
for 要转换的列
in(目标列名)
)*/
MysqL必读SELECT Student AS '姓名',
AVG(语文) AS '语文',
AVG(英语) AS '英语'
FROM scores PIVOT( AVG(score) FOR Subject IN ( 语文,英语 ) )as Newscores
GROUP BY Student
ORDER BY Student ASC
以上是内存溢出为你收集整理的MYSQL教程浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用全部内容,希望文章能够帮你解决MYSQL教程浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)