我在sqlite数据库中有项目。每个项目都有一个日期,格式为:YYYY-MM-DD。当然,有几个项目可以有相同的日期。
此外,项目的布尔值为“new”。我想按日期对这些项进行排序,使用sql查询,例如:
ORDER BY date DESC
这很容易。现在,我想将布尔新设置为True的项目拉出来。我想要的是,如果两个项目具有相同的日期,但一个是新的而另一个不是,则必须先返回新的。
现在,如果两个项目具有相同的日期,则会随机返回它们(或者在主索引键上排序,我不知道)。
我不知道我是否清楚。
有办法吗?
答案 0 :(得分:0)
将新的真值设为1,其他任何值为0,然后按该值递减排序。
select * from table_name
order by
date desc,
case when new='true' then 1 else 0 end desc
在此 Fiddle
中进行了测试