Sql 如何在rails中使用priority-conditional-in属性排序

Sql 如何在rails中使用priority-conditional-in属性排序,sql,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-4,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 当角色='member'时,我想按具有优先级的角色asc排序 结果: id

例如,我有一个用户列表

id           name         role

1            join         member
2            cathy        sale
3            mark         admin
4            orthor       member
5            Sy           admin
当角色='member'时,我想按具有优先级的角色asc排序

结果:

 id           name         role

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

如何在rails中按此排序???

从表中选择*按顺序排序(当角色='member'然后是0 else 1 end)、角色

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