if object_id('tb')is not null drop table tb
Go
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 * from tb

-- 使用case when (SQL2000以上)
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 姓名

-- 使用pivot
select * from tb pivot(max(分数) for 课程 in (语文,数学,物理))a

-- 另外也可以通过写存储过程实现,但比较麻烦。

转载于:https://www.cnblogs.com/chengeng/p/5975925.html

SQL 行转列的两种做法相关推荐

  1. mysql行转列sql函数_sql动态行转列的两种方法

    第一种方法: 代码如下: select *from ( select Url,case  when  Month=01 then  '1月' when  Month=02 then '2月' when ...

  2. sql行转列的3种方法

    行转列的3种方法 max(case when) pivot() 用存储过程行转列 准备数据 --创建表 create table Table_A (商家 string,奶茶 string,价格 big ...

  3. SparkSQL读取hive中的数据,行转列的两种方式【行转列专用函数,UDAF】

    先给数据: vi employees 1,George,nan 2,honey,nv 3,georgedage,nan 4,kangkang,nv 上传数据: hdfs dfs -mkdir /sec ...

  4. pandas 行转列的两种方式

    转载于知乎: pandas实现行转列 - 知乎 (zhihu.com) import pandas as pddf = pd.DataFrame({'name':['小明','小明','小明','小红 ...

  5. sql server数据集中取第一条记录及保留几位小数的两种做法及前n行写法

    1.使用top(1) eg: select top(1) num,Name from M_Student where name = 'xy' 前n行可使用top https://blog.csdn.n ...

  6. SQL 行转列 列转行 Oracle转置函数函数pivot、unpivot 解决wm_concat 没有排序

    https://www.cnblogs.com/mellowsmile/p/4642306.html HH 终风且暴,顾我则笑,谑浪笑敖,中心是悼. 终风且霾,惠然肯来,莫往莫来,悠悠我思. 博客园 ...

  7. SQL——行转列,列转行

    重温SQL--行转列,列转行 行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现. ...

  8. SQL SERVER 2000 数据库备份和SQL Server数据库备份有两种方式,

    SQL SERVER 2000 数据库备份与还原时间:2006-08-30 10:23:23  来源:CSDN  作者:佚名备份数据库,例如: BACKUP DATABASE Northwind    ...

  9. CCIE理论-第十三篇-IPV6-路由-静态+(EIGRP+OSPF)两种做法+IPV4-ARP代理详解(精髓篇)

    CCIE理论-第十三篇-IPV6-路由-静态+(EIGRP+OSPF)两种做法+IPV4-ARP代理详解(精髓篇) 其实呢,路由协议,静态路由 他还是ipv4那一套,只不过多了点东西 该怎么搞怎么搞, ...

最新文章

  1. RxJava 操作符 do
  2. 使用Python,OpenCV进行涂鸦(绘制文字、线、圆、矩形、椭圆、多边形轮廓、多边形填充、箭头~)
  3. java 不变式_solr - Solr错误:在请求处理程序中使用不变式时,QueryComponent.mergeIds(QueryComponent.java:940) - 堆栈内存溢出...
  4. Oracle优化05-执行计划
  5. i/o传输数据打印换行符的方法
  6. Jetty+json-lib库抛异常的问题解决过程(java.lang.NoClassDefFoundError: net/sf/json/JSONObject)...
  7. Python使用多进程提高网络爬虫的爬取速度
  8. Bailian2752 字符串数组排序问题【排序】
  9. Linux常用命令汇总--cat
  10. 怎么在InfoPath Web浏览器表单中弹出对话框?
  11. WebRTC源码研究(37)WebRTC实现共享远程桌面
  12. 用异常处理改编猜数游戏程序
  13. 为什么篮球一进游戏就服务器中断,街头篮球手游进不去 进不去游戏无非这两种原因...
  14. C. Anton and Fairy Tale
  15. 最佳会员WooCommerce插件比较
  16. 敏捷测试--开源电子书连载
  17. python pandas多条件筛选
  18. layui 动态表格 合并单元格
  19. 关于图像显著性(MR)matlab代码详解
  20. Windows下架设自己的DNS服务器

热门文章

  1. python 解方程 sympy_用Python和Sympy求解方程并得到数值答案
  2. 有十五个数按由大到小顺序存放在一个数组中_数据结构基础 (代码效率优化, 线性表, 栈, 队列, 数组,字符串,树和二叉树,哈希表)...
  3. 全志android启动串口无打印,CSK.Blog-给MK802(USB大小的Android4.0小PC)引出串口信号,变成ARM开发版...
  4. python伪造请求头x-forwarded-for的作用_Pyspider中给爬虫伪造随机请求头的实例
  5. python argvparser_Python ArgumentParse的subparser用法说明
  6. 经济学原理 下载 曼昆_2021南开经济学考研全年规划
  7. 日文转换为罗马音_手把手教你掌握韩语40音!入门必备哦
  8. cd linux给u盘安装程序,使用U盘安装CDlinux
  9. 万丰科技机器人排名_机器人系统集成“7宗最”
  10. 防抖 节流_【前端面试】节流与防抖