当前位置: 首页 > 面试题库 >

按ASC列排序,但先使用NULL值?

太叔俊侠
2023-03-14
问题内容

我需要按日期/时间字段(例如)升序对PostgreSQL表进行排序last_updated。

但是,该字段允许为空或空,我想与空记录last_updated来之前,非空last_updated
这可能吗?

order by last_updated asc  -- and null last_updated records first ??

问题答案:

PostgresNULLS FIRST | LAST为该ORDER BY子句提供了关键字,以完全满足该需求:

... ORDER BY last_updated NULLS FIRST

一个典型的用例是使用降序排序(DESC),它会生成默认的升序(ASC)的完整反转,首先是空值。通常不理想-因此,将null值保持在最后:

... ORDER BY last_updated DESC NULLS LAST

要支持带有索引的查询,请使其匹配:

CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);

Postgres可以向后读取btree索引,但是在附加NULL值的地方很重要。



 类似资料:
  • 我有一些对象的列表。我想先按一些属性和空值排序,比如在查询中: 我知道当我有字符串列表时,我可以这样做: 但是当我有一些类的对象列表时呢? 有什么建议我可以用java实现吗?

  • 问题内容: 我尝试按ASC顺序在表上使用Spring-Data-JPA创建应用程序,但它给了我一个错误: 为什么 ? 或者 问题答案: 尝试在“全部”和“订单”之间添加“按”,如下所示:

  • 问题内容: 我只想使用Collections.sort或Arrays.sort首先按x然后按y对点列表(Point类)进行排序。 我有一个像这样实现Comparable的Ponto类: 但是现在我也想在x之后按y排序。 如何通过修改上面的代码来做到这一点?还是这是一种更好且“干净”的 方法?我还使用了将此代码传递给C ,在C 中,我 使用等效的可比较方法创建了一个称为Point的结构。 问题答案:

  • 本文向大家介绍使用MySQL仅按ASC顺序显示记录列表,包括了使用MySQL仅按ASC顺序显示记录列表的使用技巧和注意事项,需要的朋友参考一下 要以特定顺序显示记录列表,您需要设置条件并使用ORDER BY。为此,请使用ORDER BY CASE语句。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是查询以ASC顺序显示特定

  • 问题内容: 在发现了惊人的发现之后,我再次陷入了困境。 问题是我有一个形式的字典,我需要按其整数值的降序对其进行排序, 但是 如果两个元素的值相同,则按键的升序排列。 一个使它更清楚的例子: 经过研究后,我得出以下结论: 这是因为它对值和键都进行了反向排序。我需要不撤消的钥匙。 问题答案: 就像是

  • 问题内容: 我有一个(int)列,称为“优先级”。选择项目时,我希望优先级最高(最低编号)在前,而优先级最低(最高编号)在最后。 但是,没有优先级的项目(当前优先级为0)应在具有优先级的项目之后的其他列中列出。 换一种说法。如果我有以下优先事项: 我如何像这样对它们进行排序: 我想我可以使用Int.max而不是0,但是0构成了一个很好的默认值,我会尝试保留它。 问题答案: 尝试: