当前位置: 首页 > news >正文

sql 行转列的终极写法

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 姓名 as 姓名
,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 姓名


declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'print (@sql)exec(@sql)


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

declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程
set @sql = '[' + @sql + ']'
exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')

 

相关文章:

  • 感觉这个JQuery不错,查询方便
  • Delphi2010 API延迟加载
  • 移动客户端搜索速度优化 —— 手机百度“云和端技术实践”沙龙
  • 压缩Sqlite数据文件大小,解决数据删除后占用空间不变的问题
  • 在Windows Mobile和Wince(Windows Embedded CE)下封装Native DLL的回调函数
  • 【转】Windows GUI自动化测试技术的比较和展望
  • dbf文件修复
  • 在Salesforce中编写Unit Test
  • oracle sql获取随机数
  • WM有约II(七):番外篇
  • PHP中的include功能
  • 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄
  • ffdshow 源代码分析1 : 整体结构
  • 关于一道面试题,使用C#实现字符串反转算法
  • 开源科学计算语言Fortress
  • JS 中的深拷贝与浅拷贝
  • django开发-定时任务的使用
  • ES6之路之模块详解
  • Iterator 和 for...of 循环
  • java第三方包学习之lombok
  • Just for fun——迅速写完快速排序
  • python学习笔记 - ThreadLocal
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • vue 个人积累(使用工具,组件)
  • vue-loader 源码解析系列之 selector
  • Wamp集成环境 添加PHP的新版本
  • 百度地图API标注+时间轴组件
  • 翻译--Thinking in React
  • 使用SAX解析XML
  • 提醒我喝水chrome插件开发指南
  • 学习笔记TF060:图像语音结合,看图说话
  • 再次简单明了总结flex布局,一看就懂...
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • Nginx实现动静分离
  • 函数计算新功能-----支持C#函数
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ###C语言程序设计-----C语言学习(3)#
  • #include到底该写在哪
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • ${ }的特别功能
  • (2)MFC+openGL单文档框架glFrame
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm高校实验室 毕业设计 800008
  • (汇总)os模块以及shutil模块对文件的操作
  • (十一)图像的罗伯特梯度锐化
  • (转)winform之ListView
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net 知识杂记
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth