查询分数大于80分以上的同学资料

declare @tab table(name varchar(50),topic varchar(50),result int)
insert into @tab values('张三','语文',81)
insert into @tab values('张三','数学',85)
insert into @tab values('张三','历史',92)
insert into @tab values('张三','地理',86)
insert into @tab values('李四','语文',65)
insert into @tab values('李四','数学',90)
insert into @tab values('王五','语文',69)
insert into @tab values('王五','数学',89)
insert into @tab values('王五','历史',94)

我昨天去一公司面试,查询分数大于80分以上的同学资料,我给的答案如下,请各位高手看有没有需要简化的地方
select * from (
select name,isnull(sum(case when topic='语文' then result else null end),100) 语文,
   isnull(sum(case when topic='数学' then result else null end),100) 数学,
   isnull(sum(case when topic='历史' then result else null end),100) 历史,
   isnull(sum(case when topic='地理' then result else null end),100) 地理    
from @tab group by name) a
where a.语文>80 and a.数学>80 and  a.历史>80 and a.地理>80

转载于:https://www.cnblogs.com/wfx001/archive/2012/02/10/2345348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值