猿问

PostgreSQL按DateTime ASC排序,首先为NULL?

PostgreSQL按DateTime ASC排序,首先为NULL?

我需要按日期/时间字段对PostgreSQL表进行排序。last_updated.

但是允许该字段为空或空,我希望记录中包含空。last_updated以前非零last_updated.
这个是可能的吗?

order by last_updated asc /* and null last_updated records first ?? */


长风秋雁
浏览 1027回答 2
2回答

素胚勾勒不出你

Postgres提供NULLS FIRST | LAST关键字ORDER BY为满足这一需要而制定的条款如下:... ORDER BY last_updated NULLS FIRSTA 典型用例具有降序排序(DESC),这将产生默认升序的完全反转(ASC),首先使用空值。因此,保留空值通常是不可取的:... ORDER BY last_updated DESC NULLS LAST控件支持查询。指数,使之匹配:CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);Postgres可以向后读取btree索引,但在哪里追加NULL值很重要。

炎炎设计

可以使用case语句创建自定义顺序。case语句检查您的条件,并为满足该条件的行分配值低于分配给不满足条件的行的值。举个例子,这可能是最容易理解的:  SELECT last_updated      FROM your_table  ORDER BY CASE WHEN last_updated IS NULL THEN 0 ELSE 1 END,           last_updated ASC;
随时随地看视频慕课网APP
我要回答