设为首页 加入收藏

TOP

SQL完成交叉表功能(二)
2014-11-24 02:59:43 来源: 作者: 【 】 浏览:10
Tags:SQL 完成 交叉 功能
3 250

*/

drop table tb

---------------------------------------------------------

---------------------------------------------------------

/*

如果上述两表互相换一下:即

姓名 语文 数学 物理

张三74  83  93

李四74  84  94

想变成

Name Subject Result

---------- ------- -----------

李四 语文 74

李四 数学 84

李四 物理 94

张三 语文 74

张三 数学 83

张三 物理 93

*/

create table tb1

(

姓名varchar(10) ,

语文int ,

数学int ,

物理int

)

insert into tb1(姓名, 语文, 数学, 物理) values('张三',74,83,93)

insert into tb1(姓名, 语文, 数学, 物理) values('李四',74,84,94)

select * from

(

select 姓名as Name , Subject = '语文' , Result = 语文from tb1

union all

select 姓名as Name , Subject = '数学' , Result = 数学from tb1

union all

select 姓名as Name , Subject = '物理' , Result = 物理from tb1

) t

order by name , case Subject when '语文' then 1 when '数学' then 2 when '物理' then 3 when '总分' then 4 end

--------------------------------------------------------------------

/*加个平均分,总分

Name Subject Result

---------- ------- --------------------

李四 语文 74.00

李四 数学 84.00

李四 物理 94.00

李四 平均分 84.00

李四 总分 252.00

张三 语文 74.00

张三 数学 83.00

张三 物理 93.00

张三 平均分 83.33

张三 总分 250.00

*/

select * from

(

select 姓名as Name , Subject = '语文' , Result = 语文from tb1

union all

select 姓名as Name , Subject = '数学' , Result = 数学from tb1

union all

select 姓名as Name , Subject = '物理' , Result = 物理from tb1

union all

select 姓名as Name , Subject = '平均分' , Result = cast((语文+ 数学+ 物理)*1.0/3 as decimal(18,2)) from tb1

union all

select 姓名as Name , Subject = '总分' , Result = 语文+ 数学+ 物理from tb1

) t

order by name , case Subject when '语文' then 1 when '数学' then 2 when '物理' then 3 when '平均分' then 4 when '总分' then 5 end

drop table tb1

摘自 RegeditNo1的专栏

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL实现递归算法 下一篇SQLServer2012分页语句执行分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)