0
我的工作問題將由以下規則我的排序輸出:MySQL的 - 排序條件
order by g.grade asc, s.name asc
如果g.grade < = 8,如果g.grade> 8
,那麼,那麼
order by g.grade desc, s.marks asc
如何做到這一點?
我的工作問題將由以下規則我的排序輸出:MySQL的 - 排序條件
order by g.grade asc, s.name asc
如果g.grade < = 8,如果g.grade> 8
,那麼,那麼
order by g.grade desc, s.marks asc
如何做到這一點?
使用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
你的第二個'CASE'表達有問題。一個分支產生一個'varchar',另一個產生一個數字。這在大多數RDBMS中不起作用,即使它在MySQL中工作,也應該避免。 –
@TimBiegeleisen嗯,你說得對,我正在考慮如何解決這個問題。 – Blank
我想不出辦法,但好消息是您的答案可能對MySQL有用。 –