我有一个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。
感谢您的帮助。
答案 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