按日期排序+按布尔值拉取

时间:2015-07-02 08:48:33

标签: sql sqlite

我在sqlite数据库中有项目。每个项目都有一个日期,格式为:YYYY-MM-DD。当然,有几个项目可以有相同的日期。

此外,项目的布尔值为“new”。我想按日期对这些项进行排序,使用sql查询,例如:

ORDER BY date DESC

这很容易。现在,我想将布尔新设置为True的项目拉出来。我想要的是,如果两个项目具有相同的日期,但一个是新的而另一个不是,则必须先返回新的。

现在,如果两个项目具有相同的日期,则会随机返回它们(或者在主索引键上排序,我不知道)。

我不知道我是否清楚。

有办法吗?

1 个答案:

答案 0 :(得分:0)

将新的真值设为1,其他任何值为0,然后按该值递减排序。

select * from table_name 
  order by 
        date desc, 
        case when new='true' then 1 else 0 end desc

在此 Fiddle

中进行了测试