SQL订单日期不相等

时间:2013-07-23 13:56:54

标签: sql sql-server sql-order-by

有桌子:

Game
----------
ID
UploadDate
LastUpdate

其中UploadDate是游戏上传的日期,LastUpdate是游戏上次更新的日期。

新游戏将UploadDate == LastUpdate

我想要返回Most recently updated games。它们应按LastUpdate降序排序,但如果UploadDate == LastUpdate它们应被推到列表底部。

我试过了:

ORDER BY UploadDate <> LastUpdate, LastUpdate DESC

但语法不正确。任何人都可以通过查询帮我处理此订单吗?

3 个答案:

答案 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