您的位置:首页 > 职场人生

SQL 面试中的竖变横的问题

2009-03-23 21:16 162 查看
    最近去应聘ASP.NET的程序员职位,有两次都是同一个问题,SQL 竖变横,用一句SQL语句表达出来,效果如下:

         变成               


 

 

 

    对于竖变横的效果,如果用程序控制的话,应该比较简单的,我在项目中做过,用一个字典组合一下就行了。但现在只用一句SQL语句,对我来说真的有点难了,两次都出现这个问题,说明这样的查询语句应该比较常用,而且不会太难。丢人,两次都不会,说明没有好好的总结。为了不让下次丢了,今晚决定把它搞定。

create table test1 (
 year varchar(10),
 season int ,
 data int
)
select * from test1

insert into test1 values('2007',1,10)
insert into test1 values('2007',2,20)
insert into test1 values('2007',3,30)
insert into test1 values('2007',4,40)
insert into test1 values('2008',1,50)
insert into test1 values('2008',2,60)
select * from test1



select [year] , max(case season when 1 then data else 0 end )as   season1 ,
max(case season when 2 then data else 0 end) as season2 ,
max(case season when 3 then data else 0 end )as   season3 ,
max(case season when 4 then data else 0 end ) as season4
from test1
group by [year]



         其它还是挺简单的,下次一定要会哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 面试 insert asp.net table