我有一张桌子,我正在尝试按2个字段排列,其中一个我想根据情况进行修改。
SELECT * FROM products WHERE disabled ='0'ORDER BY category,status
这样可行,直到状态具有某些值。 status直接来自xml,我们无法真正改变它。我们不知道它的价值。我们所知道的是,按照一定的顺序我们需要3个特定的术语,然后其余的按状态递增。
when status='1' we want it to be 1st;
when status='D' we want it to be 2nd
when status='2' we want it to be 3rd
然后其余按状态排序,因为它们带有不同的值..
示例输出:
category | status
electronic | 1
electronic | D
electronic | 2
electronic | 9
misc | 1
misc | 2
misc | 8
答案 0 :(得分:4)
试试这个:
SELECT *
FROM products
WHERE disabled='0'
ORDER BY category,
CASE WHEN status = '1' THEN 1
WHEN status = 'D' THEN 2
WHEN status = '2' THEN 3
ELSE 4 END, status