行转列问题总结 - 3、行列互转
来源:互联网 发布:linux jar命令 编辑:程序博客网 时间:2024/05/21 19:49
--测试
if object_id('[tb]') is not null drop table [tb]
go
create table tb( Student varchar(10),Math int,Class varchar(2), History int)
insert tb values('张三', 90 ,'A1', 90)
insert tb values('李四', 80 ,'A1', 89)
insert tb values('王五', 95 ,'A2', 85)
go
select Factor,max(张三) as 张三 , max(李四) as 李四 , max(王五) as 王五 from
(
select Factor = 'Math',
sort=1,
张三 = case when Student = '张三' then convert(varchar(2),Math) else '' end,
李四 = case when Student = '李四' then convert(varchar(2),Math) else '' end,
王五 = case when Student = '王五' then convert(varchar(2),Math) else '' end
from tb
union all
select Factor = 'Class' ,
sort=2,
张三 = case when Student = '张三' then Class else '' end,
李四 = case when Student = '李四' then Class else '' end,
王五 = case when Student = '王五' then Class else '' end
from tb
union all
select Factor = 'History' ,
sort=3,
张三 = case when Student = '张三' then convert(varchar(2),History) else '' end,
李四 = case when Student = '李四' then convert(varchar(2),History) else '' end,
王五 = case when Student = '王五' then convert(varchar(2),History) else '' end
from tb
) m
group by Factor,sort
order by sort
--结果
/*
Factor 张三 李四 王五
------- ---- ---- ----
Math 90 80 95
Class A1 A1 A2
History 90 89 85
(所影响的行数为 3 行)
*/
- 行转列问题总结 - 3、行列互转
- Oracle 行列转换问题总结
- Sql Server 2008 行列互转问题
- 转 -- Oracle 行列转换 总结
- 【转】oracle行列转换总结
- oracle行列互转常用小技巧总结
- 行列互转_整理贴3
- 行列互转_整理贴3
- SQL 行列互转
- 行列互转
- 行列互转整理
- 行列互转
- 行列互转
- 行列互转
- 行列互转
- SQL行列互转
- SQL行列互转
- sqlserver 行列互转
- 架构师书单
- WIN 7桌面及快捷方式无法打开的解决办法
- 使用代理服务器与路由器(NAT主机)上网的区别
- [sql server] 行转列问题总结 - 2、列转行
- 整型与字符型的相互转换(C、C++)(转载)
- 行转列问题总结 - 3、行列互转
- 启明应用基础平台发布
- SQL Server2000安装故障排除
- 六月卷 专心致志
- 如何利用缓存提高asp.net网站访问速度
- 来自Eizo,有点yellow的广告
- Shell 排序
- Visual Studio 2008 编译出现 _Swap_adl 错误
- Audacious 的全程安装