【问题标题】:order by nulls first in descending order [duplicate]首先按降序排列空值[重复]
【发布时间】:2020-05-02 07:23:10
【问题描述】:

我有一个名为books 的表,它有一个整数列orderingcreated_at 列是日期时间。

我想让空的排序行以它们创建的降序排列在顶部,然后我想按升序获得非空的排序行。

这是我尝试过的查询

select * from books order by ordering asc nulls first;

我在顶部得到空排序行,但它们是按升序排列的。有没有办法可以根据 created_at desc 获取空行的降序,然后使用排序列对剩余的行进行升序排序

相关的 Rails 查询是

Book.order('ordering ASC NULLS FIRST')

【问题讨论】:

    标签: ruby-on-rails postgresql


    【解决方案1】:

    是的,我想你正在寻找:

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

    这将按ordering 排序,然后在具有相同ordering 的结果中按created_at 排序。

    【讨论】:

    • 谢谢。疑问:所以已经有排序的记录不会在第二次被触及?
    • 没错,第二个顺序被第一个取代,不能“打破”它。
    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2019-07-18
    相关资源
    最近更新 更多