基于多个字段的Postgres查询顺序

时间:2019-03-29 12:22:46

标签: sql postgresql

我有一个表,该表有两列,started_at和expired_at。

我需要一个SQL查询来获取数据,该数据首先在started_at上排序,然后在所有过期的条目上排序。

注意事项,我有expired_at date字段。条目将基于当前日期过期,如果date> expired_at则条目已过期

示例

id  started_at  expired_at
1    11-03-19    12-03-19  
2    14-03-19    15-03-19  
3    15-03-19    02-05-19  

1 个答案:

答案 0 :(得分:0)

此SELECT首先给出所有未过期的记录,然后给出过期的记录:

SELECT * FROM Table1
ORDER BY CASE WHEN expired_at > NOW() THEN 0 ELSE 1 END, started_at