(1)表tb1有以下数据: sql
姓名 语文 数学 物理 code
张三 68 89 99 数学
李四 90 66 78 io
如今要求写出查询语句获得以下查询结果 class
name subject score select
张三 语文 68
张三 数学 89
张三 物理 99
李四 语文 90
李四 数学 66
李四 物理 78
sql语句以下: sql语句
select 姓名 as name,'语文' as subject,语文 as score from tb1 union select 姓名 as name,'数学' as subject,数学 as score from tb1 union select 姓名 as name,'物理' as subject,物理 as score from tb1 order by name
或者: nio
select * from( select 姓名 as name,'语文' as subject,语文 as score from tb1 union select 姓名 as name,'数学' as subject,数学 as score from tb1 union select 姓名 as name,'物理' as subject,物理 as score from tb1 )tb order by name
(2)tb2表有以下数据: 数据
name subject score 查询
张三 语文 74
张三 英语 88
张三 物理 90
李四 语文 88
李四 英语 67
李四 物理 95
经过查询获得以下数据:
姓名 语文 英语 物理
张三 74 88 90
李四 88 67 95
sql语句以下:
select name as '姓名', max(case subject when '语文' then score else 0 end) 语文, max(case subject when '英语' then score else 0 end) 英语, max(case subject when '物理' then score else 0 end)物理 from tb2 group by name
如今要求写出查询语句获得以下结果:
姓名 语文 英语 物理 总分 平均分
张三 74 88 90 252 84
李四 88 67 95 250 83.33
sql:
select name '姓名', max(case subject when '语文' then result else 0 end) 语文, max(case subject when '物理' then result else 0 end) 物理, max(case subject when '英语' then result else 0 end)英语, sum(result) as 总分, avg(result) as 平均分 from tb group by name