“SQL ORDER BY”,其中1和2应该处理相等

时间:2016-05-02 08:52:51

标签: sql sorting select sql-order-by

我有一个SELECT查询,我在其中按几列

进行排序
SELECT * FROM tablex
WHERE
    date = '$date' AND
    type = '1'
ORDER BY
    column_1 ASC,
    CASE column_2 WHEN '00:00:00' THEN 'b' ELSE 'a' END,
    column_2 ASC,
    column_3 DESC

column_1中的值可以是1到4之间的数字,现在我希望值'1'和'2'处理相等。因此,他们应该被处理,好像他们都是'1'e.x。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您应首先处理1或2的情况,使用CASE

SELECT * FROM tablex
WHERE
    date = '$date' AND
    type = '1'
ORDER BY
    CASE WHEN column_1 IN(1, 2) THEN 0 ELSE column_1 END ASC,
    CASE column_2 WHEN '00:00:00' THEN 'b' ELSE 'a' END,
    column_2 ASC,
    column_3 DESC