按空值由大到小的顺序排列[重复]

问题描述 投票:0回答:1

我有一个表叫 books 其中有一个整数列 orderingcreated_at 我想让空的排序行按照创建的降序排在最前面,之后我想让非空的排序行按照升序排列。

我想让排序的空行按照创建时的降序排在最前面,之后我想让非空行按照升序排在最前面。

下面是我试过的查询

select * from books order by ordering asc nulls first;

我在顶部得到了null排序的行,但这些行是按升序排列的。我是否有办法根据created_at desc获取空行的降序,然后使用排序列将剩余的行按升序排序。

相关的Rails查询是

Book.order('ordering ASC NULLS FIRST')
ruby-on-rails postgresql
1个回答
2
投票

是的,我想你要找的就是这个。

Book.order('ordering ASC NULLS FIRST, created_at DESC')

这将按以下方式排序 ordering,然后通过 created_at 在结果中,有相同的 ordering.

© www.soinside.com 2019 - 2024. All rights reserved.