浅析SQL语句行列转换的两种方法case...when与pivot函数的应用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了浅析SQL语句行列转换的两种方法case...when与pivot函数的应用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1854字,纯文字阅读大概需要3分钟。
内容图文
![浅析SQL语句行列转换的两种方法case...when与pivot函数的应用](/upload/InfoBanner/zyjiaocheng/585/1627cdad9c454a609787d2e240eaf1a6.jpg)
/*创建数据库*/
CREATE DATABASE tmp
go
USE tmp
go
/*创建数据库测试表*/
CREATE TABLE [Scores]
(
[ID] INT IDENTITY(1, 1)
PRIMARY KEY ,
[Student] VARCHAR(20) ,
[Subject] VARCHAR(30) ,
[Score] FLOAT
)
go
TRUNCATE TABLE Scores
/*插入数据库测试数据信息*/
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test001', '语文', '90' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test001', '英语', '85' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'text002', '语文', '90' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'text002', '英语', '80' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test003', '语文', '95' )
INSERT INTO Scores
( Student, Subject, Score )
VALUES ( 'test003', '英语', '85' )
/*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
/*2. pivot(聚合函数(要转成列值的列名)
for 要转换的列
in(目标列名)
)*/
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 的CASE WHEN 语句使用说明
- SQL集合函数中case when then 使用技巧
- sql学习之CASE WHEN THEN ELSE END的用法
- MySQL的CASE WHEN语句的几个使用实例
- MySQL中使用case when 语句实现多条件查询的方法
- sql 中 case when 语法使用方法
- sum(case when then)(判断男女生的个数)
- mysql case when group by 实例详解
- 关于case when语句的报错问题详解
- MySQL排序中使用CASE WHEN的方法示例
内容总结
以上是互联网集市为您收集整理的浅析SQL语句行列转换的两种方法case...when与pivot函数的应用全部内容,希望文章能够帮你解决浅析SQL语句行列转换的两种方法case...when与pivot函数的应用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。