SQL 实现行列转换
来源:互联网 发布:淘宝怎么使用微信支付 编辑:程序博客网 时间:2024/05/16 15:35
今天有个网友有这样的需求,那就看看这个实例吧
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
Insert tb
Select '张三','语文',60 union all
Select '张三','数学',70 union all
Select '张三','英语',80 union all
Select '张三','物理',90 union all
Select '李四','语文',65 union all
Select '李四','数学',75 union all
Select '李四','英语',85 union all
Select '李四','物理',95
go
第一种:
select [姓名]=max([姓名]), 数学=sum(case when [课程]='数学' then [分数] else 0 end),物理=sum(case when [课程]='物理' then [分数] else 0 end),英语=sum(case when [课程]='英语' then [分数] else 0 end),语文=sum(case when [课程]='语文' then [分数] else 0 end) from tb group by [姓名]
第二种:
declare @sql varchar(8000)
set @sql = ''
select @sql = @sql+[课程]+'=sum(case when [课程]='''+[课程]+''' then [分数] else 0 end),' from (SELECT DISTINCT [课程] FROM TB) A
set @sql = left(@sql,len(@sql) - 1)
set @sql = 'select [姓名]=max([姓名]), '+@sql+' from tb group by [姓名] '
exec (@sql)
create table #TABLE (Area varchar(10), Date varchar(10), Count int)
go
insert into #TABLE (Area, Date, Count)
values ('BeiJing', '2007-01-01',100000)
insert into #TABLE (Area, Date, Count)
values ('GuangZhou', '2007-01-01',200000)
insert into #TABLE (Area, Date, Count)
values ('BeiJing','2007-02-19',300000)
insert into #TABLE (Area, Date, Count)
values ('GuangZhou','2007-02-19',400000)
insert into #TABLE (Area, Date, Count)
values ('BeiJing','2007-03-21',500000)
insert into #TABLE (Area, Date, Count)
values ('GuangZhou','2007-03-21',600000)
go
--sql2000
SELECT Area,
'2007-01-01'=SUM(CASE Date WHEN '2007-01-01' THEN [Count] END),
'2007-02-19'=SUM(CASE Date WHEN '2007-02-19' THEN [Count] END),
'2007-03-21'=SUM(CASE Date WHEN '2007-03-21' THEN [Count] END)
FROM #table
GROUP BY Area
go
--sql2005
SELECT * FROM
#TABLE
PIVOT(SUM([Count]) FOR Date IN (
[2007-01-01],[2007-02-19],[2007-03-21])) b
- SQL 实现行列转换
- SQL实现行列转换
- Sql实现行列转换
- sql实现行列转换
- sql pivot 实现行列转换
- SQL 实现行列转换示例
- PL/SQL 实现行列转换
- 应用SQL交叉表实现行列转换
- 如何用SQL语句实现行列转换
- SQL server2005中用pivot实现行列转换
- sql 实现表的行列转换
- SQL通过PIVOT/UNPIVOT实现行列转换
- SQL进行行列转换
- SQL的行列转换
- sql 行列转换
- SQL 行列转换查询
- SQL 行列转换查询
- SQL行列转换实战
- Cordys安装手册
- 网站制作时的中文问题
- 探索宇宙-物质构成
- SqlHelper使用实例
- OpenCV读取AVI文件
- SQL 实现行列转换
- 关于师兄师姐的就业经验交流(二)
- 一个在EXCEL单元格中显示进度条的方法
- js 点击文本框后弹出选择日期
- table的diaplay属性 加载的时候有数据就显示table
- asmlinkage宏
- ubuntu 安装 fetion ,右键打开终端 及终端的美化, ncurses
- 横竖屏切换时候activity的生命周期 android:configChanges
- 刷新页面