我有一个表叫 books
其中有一个整数列 ordering
和 created_at
我想让空的排序行按照创建的降序排在最前面,之后我想让非空的排序行按照升序排列。
我想让排序的空行按照创建时的降序排在最前面,之后我想让非空行按照升序排在最前面。
下面是我试过的查询
select * from books order by ordering asc nulls first;
我在顶部得到了null排序的行,但这些行是按升序排列的。我是否有办法根据created_at desc获取空行的降序,然后使用排序列将剩余的行按升序排序。
相关的Rails查询是
Book.order('ordering ASC NULLS FIRST')
是的,我想你要找的就是这个。
Book.order('ordering ASC NULLS FIRST, created_at DESC')
这将按以下方式排序 ordering
,然后通过 created_at
在结果中,有相同的 ordering
.