Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
日期不相等时的SQL顺序_Sql_Sql Server_Sql Order By - Fatal编程技术网

日期不相等时的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
。。或
=
而不是
;)