如何在rails中按优先级条件在属性中进行排序

时间:2016-02-26 04:03:40

标签: sql ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

示例我有一个用户列表

id           name         role

1            join         member
2            cathy        sale
3            mark         admin
4            orthor       member
5            Sy           admin

我想在role ='member'

时按角色asc优先订购

结果:

 id           name         role

1            join         member
4            orthor       member
3            mark         admin
5            Sy           admin
2            cathy        sale

如何在rails中订购?

2 个答案:

答案 0 :(得分:0)

从表格顺序中选择*(当role ='member'然后0 else 1 end),角色

答案 1 :(得分:0)

SELECT id,name,role
FROM (
    SELECT *, (Case when role='member' THEN 0 ELSE 1 END) as order_role
    FROM your_table
)
ORDER BY order_role,role ASC