急求:SQL语句进行行列转换!!!

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:20:52
如题:
姓名 班级 身高
张三 201 155
李四 202 160

转换为:
姓名 张三 李四
班级 201 202
身高 155 160
SQL语句如何实现?

你的这种变化貌似是毫无意义的,或许 你想要的变换时下面的这种情况吧。
******原来的纵表tb*****
学号 科目 成绩
1001 语文 90
1001 数学 80
1001 英语 70
1002 语文 95
1002 数学 85
1002 英语 75

*****目标的横表*****
学号 语文 数学 英语 总分
1001 90 80 70 240
1002 95 85 75 255

sql语句:
select 学号 as '学号',
sum(case 科目 when '语文' then 成绩 else 0 end) as '语文',
sum(case 科目 when '数学' then 成绩 else 0 end) as '数学',
sum(case 科目 when '英语' then 成绩 else 0 end) as '英语',
sum(case when 科目!='' then 成绩 end) as '总分'
from tb
group by 学号

select
'班级' as 姓名
case 姓名 when '张三' then 班级 end as 张三,
case 姓名 when '李四' then 班级 end as 李四
from 表名
union
select
'身高' as 姓名
case 姓名 when '张三' then 身高 end as 张三,
case 姓名 when '李四' then 身高 end as 李四
from