我正在研究一个问题,它会按照以下规则对输出进行排序:
如果g.grade> 8,那么
order by g.grade asc, s.name asc
如果g.grade< = 8,那么
order by g.grade desc, s.marks asc
怎么做?
答案 0 :(得分:0)
使用case when
:
ORDER BY CASE WHEN g.grade > 8 THEN g.grade ELSE (0 - g.grade) END asc,
CASE WHEN g.grade > 8 THEN s.name ELSE s.marks END asc