Rails根据列查询不同的顺序

时间:2017-04-04 05:07:36

标签: mysql ruby-on-rails activerecord

我在MySQL中有这个查询。

SELECT * FROM dbo.Employee
ORDER BY 
CASE WHEN is_outsourcing = 'true' THEN Country END Desc,
CASE WHEN is_outsourcing = 'false' THEN joined_date END ASC

我尝试进行铁路查询,以便首先订购所有is_outsourcing员工,并且他们的订单由他们的国家决定。其余员工由joined_date订购。

目前,我首先通过is_outsoucing订购此查询:

User.all.order(is_outsourcing DESC)

但我不知道如何做以后的部分。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

您可以简单地将order by逻辑作为字符串:

User.all.
  order("CASE WHEN is_outsourcing = 'true' THEN Country END Desc,
         CASE WHEN is_outsourcing = 'false' THEN joined_date END ASC")