Mar*_*kus 6 sql sqlite sql-order-by android-sqlite
我有一个名为"priority"的(int)列.当我选择我的项目时,我希望最高优先级(最低编号)是第一个,最低优先级(最高编号)是最后一个.
但是,没有优先级的项目(当前优先级为0)应该在具有优先级的列之后由其他列列出.
换一种说法.如果我有这些优先事项:
 1 2 0 0 5 0 8 9
Run Code Online (Sandbox Code Playgroud)
我该如何对它们进行排序:
 1 2 5 8 9 0 0 0 
Run Code Online (Sandbox Code Playgroud)
我想我可以使用Int.max而不是0,但是0组成了一个很好的默认值,我会尽量保留.
mvp*_*mvp 15
我认为它不会比这更清洁:
ORDER BY priority=0, priority
Run Code Online (Sandbox Code Playgroud)
请注意,与任何其他解决方案不同,这个解决方案将利用索引,priority并且如果记录数量很大,将会很快.
小智 6
尝试:
order by case priority when 0 then 2 else 1 end, priority
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5973 次  |  
        
|   最近记录:  |