34,873
社区成员
发帖
与我相关
我的任务
分享
--方法一
select t.*,
case when 分数1 >= 分数2 and 分数1 >= 分数3 then '选修课号1'
when 分数2 >= 分数1 and 分数2 >= 分数3 then '选修课号2'
when 分数3 >= 分数1 and 分数3 >= 分数1 then '选修课号3'
end '分数最高的选修课'
from tb where 学号 = '1'
--方法二(查询所有的人)
select m.* from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb
) m where 分数 = (select max(分数) from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb
) n where m.学号 = n.学号)
--方法三(查询学号 = '1')
select m.* from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb where 学号 = '1'
) m where 分数 = (select max(分数) from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb where 学号 = '1'
) n where m.学号 = n.学号)
--方法四(查询所有的人)
select m.* from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb
) m where not exists = (select 1 from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb
) n where m.学号 = n.学号 and 分数 > m.分数)
--方法五(查询学号 = '1')
select m.* from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb where 学号 = '1'
) m where not exists = (select 1 from
(
select 学号 , 姓名 , 选修课号1 选修课号, 分数1 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号2 选修课号, 分数2 分数 from tb where 学号 = '1'
union all
select 学号 , 姓名 , 选修课号3 选修课号, 分数3 分数 from tb where 学号 = '1'
) n where m.学号 = n.学号 and 分数 > m.分数)select t.*,
case when 分数1 >= 分数2 and 分数1 >= 分数3 then '选修课号1'
when 分数2 >= 分数1 and 分数2 >= 分数3 then '选修课号2'
when 分数3 >= 分数1 and 分数3 >= 分数1 then '选修课号3'
end '分数最高的选修课'
from tb where 学号 = '1'