有桌子:
Game
----------
ID
UploadDate
LastUpdate
其中UploadDate
是游戏上传的日期,LastUpdate
是游戏上次更新的日期。
新游戏将UploadDate == LastUpdate
。
我想要返回Most recently updated games
。它们应按LastUpdate
降序排序,但如果UploadDate == LastUpdate
它们应被推到列表底部。
我试过了:
ORDER BY UploadDate <> LastUpdate, LastUpdate DESC
但语法不正确。任何人都可以通过查询帮我处理此订单吗?
答案 0 :(得分:3)
您使用的语法适用于MySQL。以下几乎适用于所有数据库:
ORDER BY (case when UploadDate <> LastUpdate then 1 else 0 end) desc, LastUpdate DESC
答案 1 :(得分:2)
你非常接近 - order by子句需要按顺序排序 - 而不是布尔条件。相反,您可以将条件包装在CASE语句中,例如:
ORDER BY CASE WHEN UploadDate <> LastUpdate THEN 0 ELSE 1 END ASC, LastUpdate DESC
答案 2 :(得分:1)
尝试:
ORDER BY CASE WHEN UploadDate = LastUpdate THEN 2 ELSE 1 END ASC, LastUpdate DESC