博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server 行列互转
阅读量:5265 次
发布时间:2019-06-14

本文共 997 字,大约阅读时间需要 3 分钟。

1 列转行

测试脚本

create table tb(姓名 varchar(10),课程 varchar(10),分数 int)insert into tb values('张三','语文',74)insert into tb values('张三','数学',83)insert into tb values('张三','物理',93)insert into tb values('李四','语文',74)insert into tb values('李四','数学',84)insert into tb values('李四','物理',94)go

转化脚本

select 姓名 , max(case 课程 when '语文' then 分数 else 0 end) 语文, max(case 课程 when '数学' then 分数 else 0 end) 数学 ,max(case 课程 when '物理' then 分数 else 0 end) 物理 from tb  group by 姓名

附加求总分和平均分

select 姓名 , max(case 课程 when '语文' then 分数 else 0 end) 语文, max(case 课程 when '数学' then 分数 else 0 end) 数学 ,max(case 课程 when '物理' then 分数 else 0 end) 物理 ,sum(分数) 总分,cast(avg(分数*1.0)as decimal(18,2)) 平均分from tb  group by 姓名

2 列传行

测试脚本

create table tbs(姓名 varchar(10),语文 int,数学 int,物理 int)insert into tbs values('张三',74,83,93)insert into tbs values('李四',74,84,94)go

转化脚本

select 姓名,课程 ='语文',分数=语文 from tbs union  select 姓名,课程='数学',分数=数学 from tbs union  select 姓名,课程='物理',分数=物理 from tbs

 

转载于:https://www.cnblogs.com/saodiseng2015/p/4962023.html

你可能感兴趣的文章
Linux误删恢复
查看>>
eclipse中的.project 和 .classpath文件的具体作用是什么?
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
字节流缓存
查看>>
HashMap循环遍历方式
查看>>
python面试题(二)顺时针打印二维数组,快速排序
查看>>
第一次作业,三班王泽04
查看>>
本地浏览器Websql数据库操作
查看>>
boost.log要点笔记
查看>>
React Native 入门 调试项目
查看>>
php 简单markdown app 标记语言
查看>>
URL中参数为数组
查看>>
Hacking Grub for fun and profit
查看>>
MySQL数据库 基本操作
查看>>
请大家规范电子邮件用法养成好的邮件习惯
查看>>
微信游戏和微信公众号小说如何有效做好域名防封,给大家分享我的有效经验...
查看>>
前端跨域知识总结
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
vue-购物车
查看>>