学生表有一个名为courseid的列。课程表有两列名为courseid和coursename。
现在,我想选择选择课程名称为数学或音乐,或物理的学生,并返回必须按课程实际或音乐或实际排序的结果。如果我想选择课程名称为音乐或数学或物理的学生,并返回必须按课程音乐或数学或物理排序的结果。
我试着编写sql,但似乎我无法直接使用order by
。
select *
from student s
inner join course c
on t.courseid=s.courseid
and c.coursename in ('math','music','physical')
答案 0 :(得分:1)
ORDER BY CASE WHEN c.coursename='music' THEN 3 WHEN c.coursenane='math' THEN 2 WHEN c.coursename='physical' THEN 1 END DESC
答案 1 :(得分:0)
select *
from student s inner join course c on t.courseid=s.courseid
where
c.coursename in ('math','music','physical')
order by
c.coursename;