1、行列转换

创建创建学生成绩表并添加学生成绩信息。

/*-创建学生成绩表-*/
CREATE TABLE StuScore
(StuName VARCHAR(20),  --姓名Subject VARCHAR(20),  --科目Score INT             --成绩
);/*-添加学生成绩信息-*/
INSERT INTO StuScore  VALUES('张三','语文',60);
INSERT INTO StuScore  VALUES('张三','数学',80);
INSERT INTO StuScore  VALUES('张三','英语',70);
INSERT INTO StuScore  VALUES('李四','语文',50);
INSERT INTO StuScore  VALUES('李四','数学',90);
INSERT INTO StuScore  VALUES('李四','英语',60);
INSERT INTO StuScore  VALUES('王五','语文',80);
INSERT INTO StuScore  VALUES('王五','数学',40);

1.1 使用Case WHEN 实现行转列

/*-使用Case WHEN 实现行转列-*/
SELECT StuName AS '姓名',MAX(CASE Subject WHEN '语文' THEN Score ELSE 0 END) AS '语文',MAX(CASE Subject WHEN '数学' THEN Score ELSE 0 END) AS '数学',MAX(CASE Subject WHEN '英语' THEN Score ELSE 0 END) AS '英语',SUM(Score) AS '总分',AVG(Score) AS '平均分'
FROM StuScore
GROUP BY StuName

执行结果:

1.2 使用PIVOT实现行转列

/*-使用PIVOT实现行转列-*/
SELECT PVT.StuName AS '姓名',PVT.语文,PVT.数学,PVT.英语
FROM StuScore
PIVOT(MAX(Score) FOR Subject IN(语文,数学,英语)) AS PVT

执行结果:

2、列行转换

创建创建学生成绩表2并添加学生成绩信息。

/*-创建学生成绩表2-*/
CREATE TABLE StuScore2
(StuName VARCHAR(20),  --姓名Chinese INT,          --语文成绩Mathematical INT,     --数学成绩English INT           --英语成绩
);/*-添加学生成绩信息-*/
INSERT INTO StuScore2 VALUES('张三',60,80,70);
INSERT INTO StuScore2 VALUES('李四',50,90,60);
INSERT INTO StuScore2 VALUES('王五',80,40,50);

2.1 使用UNION实现列转行

/*-使用UNION实现列转行-*/
SELECT * FROM (SELECT StuName AS '姓名', '语文' AS '科目', Chinese AS '成绩' FROM StuScore2UNION ALL SELECT StuName AS '姓名', '数学' AS '科目', Mathematical AS '成绩' FROM StuScore2UNION ALL SELECT StuName AS '姓名', '英语' AS '科目', English AS '成绩' FROM StuScore2
) T

执行结果:

2.2 使用UNPIVOT实现列转行

/*-使用UNPIVOT实现列转行-*/
SELECT *
FROM StuScore2
UNPIVOT(Score FOR Subject IN(Chinese,Mathematical,English)) T

执行结果:

SQL Server行列转换相关推荐

  1. SQL Server 行列转换(1)

    参考前一个SQL的行列转换例子http://www.cnblogs.com/insus/articles/1969896.html ,觉得不够自由,需要去预先知道记录的内容去定义行或列. 下面这个方法 ...

  2. [转载]SQL Server行列转换实现

    一.Pivot和UnPivot介绍 1.Pivot介绍 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVO ...

  3. SQL Server 行列转换(2)

    参考前一个例子http://www.cnblogs.com/insus/articles/1969896.html,现想使用另外一种方式来处理行列转换,实现下面效果: 参考代码: View Code ...

  4. SQL SERVER 行列转换(1)——聚合函数静态转换

    在实际开发中,有时候需要对数据表进行行列转换,转换之后再显示对应的数据,行列转换的方法比较多,本次介绍静态的利用聚合函数来实现,行转列测试数据: --测试数据 if not object_id(N'T ...

  5. Sql server 行列转换 PIVOT UNPIVOT

    官方介绍链接 下面是SQL示例 drop table tb create table tb(name varchar(10),course varchar(10),score int,sex char ...

  6. 一些sql 语句(行列转换等)

    1. 行列转换--普通 假设有张学生成绩表(CJ)如下 Name Subject Result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 8 ...

  7. SQL语句行列转换两种方法 case ...when 和pivot函数应用

    2019独角兽企业重金招聘Python工程师标准>>> SQL语句行列转换两种方法 case ...when 和pivot函数应用SQL语句行列转换两种方法 case ...when ...

  8. SQL Server 批量转换指定字段类型为另一种类型

    SQL Server 批量转换指定字段类型为另一种类型存储过程: CREATE PROCEDURE convertFieldType AS DECLARE tb CURSOR FOR SELECT S ...

  9. sql server行列转化和行列置换

    行列转换: [sql] view plaincopy 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果 ...

  10. PL/SQL 实现行列转换

    这篇博文写的是简单的行列转换的,以一个具体的例子来给出. 以前在论坛上有人问过相关的问题,上面的回答五光十色,有很多是可行的,当然更多的是自以为很高端,实际却不着边际的回答.下面进入正题. part1 ...

最新文章

  1. 全球及中国真空管太阳能集热器行业竞争状况及投资策略研究报告2021年版
  2. Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
  3. 字幕学英语app隐私政策网址(URL)
  4. java学习笔记 2022.2.11
  5. matlab连通域分割_MATLAB车牌识别之7个字符切割浅谈【抽丝剥茧】
  6. ORB feature to FAST,定向快速旋转简报
  7. jquery版本过低安全漏洞问题
  8. 南京大学软件学院考研计算机网络汇总
  9. 小组取什么名字好_如何给公司取一个好名字?让你的公司脱颖而出
  10. 你所不知道的互联网那些职业-技术岗
  11. pom 备注_POM 500P的物性
  12. vue遇到ie兼容问题如何处理_Vue 2.0 解决IE浏览器的兼容性
  13. 如何解包编译重新打包boot.img System.img(转自百度文库)
  14. “海大与我“ Scrum Meeting(第九周会议记录)
  15. Linux下conda环境配置及第三方库安装
  16. 虚拟主播甜妹小给给戏腔演绎国风佳作,引爆抖音直播浪潮
  17. html,css和js
  18. 用windows 画图 裁剪照片
  19. Linux环境go项目启动提示/usr/bin/ld: cannot find -lxxx
  20. 【公告】博客新皮肤上线啦

热门文章

  1. YT88 USB 加密狗 使用方法(一)加壳
  2. VS2012(Visual Studio 2012)官方免费中文旗舰版下载(含激活密钥)
  3. C语言 陶陶摘苹果 数组,陶陶摘苹果-题解(C++代码)
  4. VBA实例6 CorelDraw 批量生成设备位号、连续编号
  5. Redis常用命令大集合(快速入门)
  6. javascript原生代码实现轮播图片
  7. MySQL5.7官网参考手册路径
  8. IEEE1588v2解析(1)--同步的概念
  9. 基恩士KEYENCE激光打标机控制器维修ML-9110详解
  10. 读书笔记《计算机是怎样跑起来的》