根据两列对记录进行排序

时间:2020-04-30 10:13:00

标签: ruby-on-rails postgresql sorting activerecord rails-activerecord

我有Task表,并且我想根据其名为ownertask_type的2列对记录进行排序。请记住,我不希望在这两列之间进行基于平局的排序,而我想要的是这2列的值充当要在其上应用排序的值的单个列表(用于排序)。

可能吗我将ActiveRecord与Postgresql一起使用。 例如,如果我有以下3条记录:

  1. (id:1,所有者:'abc',task_type:null)
  2. (id:2,所有者:null,task_type:'aa')
  3. (id:1,所有者:'abe',task_type:'null')

我希望对这些值进行排序

('abc','null','null', 'aa', 'abe', 'null')

将按此顺序对其进行排序(我需要实现这一点)

  1. (id:2,所有者:null,task_type:'aa')
  2. (id:1,所有者:'abc',task_type:null)
  3. (id:1,所有者:'abe',task_type:'null')

请注意,我假设ownertask_type是互斥字段(即,如果一个具有值,另一个将为null)
我已经对此进行了测试,并且它仅按照打破平局原​​则对记录进行排序。

Task.order(owner: :asc, task_type: :asc)

此代码按此顺序对它们进行排序(我不希望这样)

  1. (id:1,所有者:'abc',task_type:null)
  2. (id:1,所有者:'abe',task_type:'null')
  3. (id:2,所有者:null,task_type:'aa')

0 个答案:

没有答案