PostgreSQL按datetime ascsorting,先是null?

我需要sorting一个date/时间字段升序PostgreSQL表,例如last_updated

但是,该字段允许为空或空,我希望last_updated有null的logging在last_updated 之前
这可能吗?

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

PostgreSQL提供NULLS FIRST | LAST ORDER BY子句的NULLS FIRST | LAST关键字来满足需要:

 ORDER BY last_updated NULLS FIRST 

一个典型的用例是降序sorting( DESC ),它将首先使用空值完全反转默认升序( ASC )。 往往不可取 – 因此,保持空位最后:

 ORDER BY last_updated DESC NULLS LAST 

您可以使用CASE语句创build自定义的ORDER BY。
CASE语句会检查您的条件,并将满足条件的行分配给比分配给不符合条件的行更低的值。
给出一个例子可能是最容易理解的:

  SELECT last_updated FROM your_table ORDER BY CASE WHEN last_updated IS NULL THEN 0 ELSE 1 END, last_updated ASC;