日期不相等时的SQL顺序
请在表格中填写:日期不相等时的SQL顺序,sql,sql-server,sql-order-by,Sql,Sql Server,Sql Order By,请在表格中填写: Game ---------- ID UploadDate LastUpdate 其中,UploadDate是游戏上载的日期,LastUpdate是游戏上次更新的日期 新游戏将有UploadDate==LastUpdate 我想返回最近更新的游戏。它们应该按LastUpdate降序排列,但是如果UploadDate==LastUpdate它们应该被推到列表的底部 我试过: ORDER BY UploadDate <> LastUpdate, LastUpdate
Game
----------
ID
UploadDate
LastUpdate
其中,UploadDate
是游戏上载的日期,LastUpdate
是游戏上次更新的日期
新游戏将有UploadDate==LastUpdate
我想返回最近更新的游戏
。它们应该按LastUpdate
降序排列,但是如果UploadDate==LastUpdate
它们应该被推到列表的底部
我试过:
ORDER BY UploadDate <> LastUpdate, LastUpdate DESC
ORDER BY UploadDate LastUpdate,LastUpdate DESC
但是语法是不正确的。有人能帮我查询这个订单吗?您使用的语法适合MySQL。以下内容适用于几乎所有数据库:
ORDER BY (case when UploadDate <> LastUpdate then 1 else 0 end) desc, LastUpdate DESC
ORDER BY(当UploadDate LastUpdate然后是1 else 0 end时按大小写)说明,LastUpdate说明
您使用的语法适用于MySQL。以下内容适用于几乎所有数据库:
ORDER BY (case when UploadDate <> LastUpdate then 1 else 0 end) desc, LastUpdate DESC
ORDER BY(当UploadDate LastUpdate然后是1 else 0 end时按大小写)说明,LastUpdate说明
您已经非常接近了-order by子句需要值来order by-而不是布尔条件。相反,您可以将条件包装在CASE语句中,例如:
ORDER BY CASE WHEN UploadDate <> LastUpdate THEN 0 ELSE 1 END ASC, LastUpdate DESC
在上载日期LastUpdate时按情况排序,然后0其他1结束ASC,LastUpdate DESC
您已经非常接近了-order by子句需要值来order by-而不是布尔条件。相反,您可以将条件包装在CASE语句中,例如:
ORDER BY CASE WHEN UploadDate <> LastUpdate THEN 0 ELSE 1 END ASC, LastUpdate DESC
在上载日期LastUpdate时按情况排序,然后0其他1结束ASC,LastUpdate DESC
试试:
尝试:
比我快11秒比我快11秒不,我认为当他们想把
UploadDate LastUpdate==LastUpdate
放在列表的底部时,他们会把UploadDate==LastUpdate
推到列表的底部。1
和0
应该是另一种方式。。。或DESC
而不是ASC
。。或=
而不是
;)不,我认为当他们希望UploadDate==lastdupdate
位于列表底部时,他们会将UploadDate
推到列表底部。1
和0
应该是另一种方式。。。或DESC
而不是ASC
。。或=
而不是
;)