如何根据我在Oracle中的自定义格式选择结果进行排序?

时间:2016-12-05 16:29:59

标签: sql oracle

学生表有一个名为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')

2 个答案:

答案 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;