Postgresql Postgres按条件排序时,然后

Postgresql Postgres按条件排序时,然后,postgresql,sql-order-by,Postgresql,Sql Order By,我想根据postgres中的动态条件对记录进行排序。 在数据库中具有“创建”列(时间戳)和“类型”(布尔值)列 现在我想根据“created”desc进行排序。如果我传递的是“created'>日期”,则根据类型created进行降序排序 以下是我的疑问: .... order by case when created > '2020-09-14 10:00:00' then created end desc, case when created < '2020-09-14 10:0

我想根据postgres中的动态条件对记录进行排序。 在数据库中具有“创建”列(时间戳)和“类型”(布尔值)列

现在我想根据“created”desc进行排序。如果我传递的是“created'>日期”,则根据类型created进行降序排序

以下是我的疑问:

.... order by case when created > '2020-09-14 10:00:00' then created end desc, case when created < '2020-09-14 10:00:00' then (type,created) end desc;
。。。。创建时按案例排序>'2020-09-14 10:00:00',然后创建结束描述;创建时按案例排序>'2020-09-14 10:00:00',然后(类型,创建)结束描述;

但它不起作用。。我首先得到第二个病例结果,第一个病例在底部。

根据您的描述,应该是

ORDER BY CASE WHEN created <= '2020-09-14 10:00:00
              THEN "type"
         END,
         created DESC

创建时按情况排序如果一个结果行满足条件而另一个不满足条件怎么办?行之间的比较如何?我已经有了一个where子句。。我只想根据最近N天的描述进行排序,然后保留type和created。您的表达式不能反映您在文本中所写的内容。尝试创建时按大小写排序“2020-09-14 10:00:00”,然后为空,否则“键入”结束,首先创建描述为空
对不起,输入错误。应该是
。。。创建时按案例排序>'2020-09-14 10:00:00',然后为空,否则“类型”首先为空,创建描述。这就是字面上的“基于最近N天的描述排序,然后保留类型并创建”。