以非数字顺序排序

Thi*_*zig 2 sql

我正在尝试以非字母数字顺序排序查询结果.例如,如果列的可能值为"1","2"和"3".ORDER BY asc将首先显示带'1'的行,然后显示带'2'的行,最后显示带'3'的行.ORDER BY desc会做对手.

如果我想要一个不同的订单,例如3,1,2或1,3,2,该怎么办?那可能吗 ?

谢谢

Jim*_*m B 7

您希望在order by子句中使用case语句.

所以对于你的3,1,2例子,它看起来像这样:

ORDER BY
    CASE <yourField>
        WHEN 3 THEN 1
        WHEN 1 THEN 2
        WHEN 2 THEN 3
        ELSE 4 END ASC
Run Code Online (Sandbox Code Playgroud)