我需要订购我的结果,以便状态列为特定值的所有项目首先出现,然后按日期出现。
我试过了:
SELECT Id, Status, CreatedAt FROM Table
ORDER BY (Status=1) DESC, CreatedAt
我想我会得到一个bool值(Status = 1),所以DESC命令把true(1)值放在最上面。
但我收到语法错误。这是可能的,如果是的话,正确的语法是什么?
谢谢!
答案 0 :(得分:12)
您也可以在ORDER BY
:
CASE
SELECT Id, Status, CreatedAt
FROM Table
ORDER BY
CASE WHEN Status = 1 THEN 0 ELSE 1 END ASC,
CreatedAt ASC
答案 1 :(得分:4)
试试这个
SELECT Id, Status, CreatedAt FROM Table
ORDER BY (case when Status=1 then 1 else 2 end), CreatedAt