当前位置: 代码迷 >> Sql Server >> 麻烦大家帮忙看一下这道SQL面试题如何做
  详细解决方案

麻烦大家帮忙看一下这道SQL面试题如何做

热度:52   发布时间:2016-04-24 20:26:19.0
麻烦大家帮忙看一下这道SQL面试题怎么做
这个是已给的查询结果

这个是要我查询出的结果,sql语句怎么写?

------解决方案--------------------

create table #tab(科目 varchar(50),张三 int,李四 int,王五 int)

insert into #tab
select '语文',30,33,33 union all
select '数学',33,55,55 union all
select '英语',44,44,55


select '张三' as 科目,
max(case 科目 when '语文' then 张三 end) '语文',
max(case 科目 when '数学' then 张三 end) '数学',
max(case 科目 when '英语' then 张三 end) '英语'
from #tab 
union all
select '李四',
max(case 科目 when '语文' then 李四 end) '语文',
max(case 科目 when '数学' then 李四 end) '数学',
max(case 科目 when '英语' then 李四 end) '英语'
from #tab 
union all
select '王五',
max(case 科目 when '语文' then 王五 end) '语文',
max(case 科目 when '数学' then 王五 end) '数学',
max(case 科目 when '英语' then 王五 end) '英语'
from #tab 
----------------------------
科目              张三          李四          王五
-------------- ----------- ----------- -----------
语文              30          33          33
数学              33          55          55
英语              44          44          55

(3 行受影响)

科目   语文          数学          英语
  相关解决方案