Sql Rails复杂查询首先升序,然后降序

Sql Rails复杂查询首先升序,然后降序,sql,ruby-on-rails,ruby,database,postgresql,Sql,Ruby On Rails,Ruby,Database,Postgresql,因此,我需要进行如下查询: 首先,它将显示一些元素,这些元素的日期属性end_date大于当前日期,而release_date属性小于当前日期示例:今天是9月15日,end_date是20日,release是12日。这些元素是活跃的 在显示这些元素之后,我想按降序显示过去的元素-过去的元素是那些结束日期低于当前日期的元素 如果您能帮助我建立此查询,我将不胜感激。谢谢 另外,我正在使用PostgreSQL、Ruby 2.2.0和Rails 4.2.1,其中一个选项是进行两次查询,然后合并Activ

因此,我需要进行如下查询:

首先,它将显示一些元素,这些元素的日期属性end_date大于当前日期,而release_date属性小于当前日期示例:今天是9月15日,end_date是20日,release是12日。这些元素是活跃的

在显示这些元素之后,我想按降序显示过去的元素-过去的元素是那些结束日期低于当前日期的元素

如果您能帮助我建立此查询,我将不胜感激。谢谢


另外,我正在使用PostgreSQL、Ruby 2.2.0和Rails 4.2.1,其中一个选项是进行两次查询,然后合并ActiveRecord::Relation对象。2查询可能效率不高,但易于理解和重构

@relevant_elements = Element.where('end_date > :current_date AND release_date < :current_date', current_date: Date.today).order('end_date ASC')
@past_elements = Element.where('end_date < :current_date', current_date: Date.today).order('end_date DESC')
@elements = @relevant_elements.merge(@past_elements)

你的问题很模糊。如果选择end_date>current_date的行,则没有end_date