sqlite3 select数据

我有一个数据库文件song.db,里面有个table 为singlist
table有其中一列叫做id,还有一列叫abbr,
现在查询要做到这种要求:
1、优先显示id>100000的数据(满足2的条件下,如果有id>100000的要显示在查询结果靠前的位置)
2、以abbr为正序排列,而且会规定abbr的取值范围如 : abbr > 100000 and abbr < 9999
...全文
209 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2015-07-01
  • 打赏
  • 举报
回复
你做到哪一步了,有什么问题
  • 打赏
  • 举报
回复
引用 6 楼 wwwwb 的回复:
select * from tt order by case when id>=100000 then -1 else 1 end ,abbr 贴数据及要求结果出来看看
这个应该是的了,我试了,数据量太大了,没法贴。。。
wwwwb 2015-07-01
  • 打赏
  • 举报
回复
select * from tt order by case when id>=100000 then -1 else 1 end ,abbr 贴数据及要求结果出来看看
  • 打赏
  • 举报
回复
引用 4 楼 wwwwb 的回复:
即把是id在100000号前要按abbr正序排列 100000号后也是 举例说明要求 select * from (select * from tt where id>100000) a order by id desc,abbr
比如我的数据里面有999999首歌曲 其中id从1~999999,当id<100000时,是一种歌曲 id>=100000时是另一种 现在我要一行一行的显示它们,但是要根据这种规则: 1、abbr小的显示在前面 2、大于100000号的显示在前面 3、那么综合1、2就是我说的 { //这里的数据的id都大于10000,而且它们的abbr从上到下递增 } /********/ { /这里的数据id都小于100000,而且它们的abbr从上到下递增 }
wwwwb 2015-07-01
  • 打赏
  • 举报
回复
即把是id在100000号前要按abbr正序排列 100000号后也是 举例说明要求 select * from (select * from tt where id>100000) a order by id desc,abbr
  • 打赏
  • 举报
回复
引用 2 楼 wwwwb 的回复:
你做到哪一步了,有什么问题
我现在就是不知到怎么在满足条件2的情况下去做到条件1,即把是id在100000号前要按abbr正序排列 100000号后也是
道玄希言 2015-06-30
  • 打赏
  • 举报
回复
sqlite3 不知道支不支持 UNION ALL 了。 既然你需要将 100000 的放前边, 那就分成两部分来处理, 其他的条件不变化。 不过,貌似楼主你举例的条件, 是查不到数据的额


SELECT id, abbr FROM singlist WHERE id > 100000  and (abbr 条件)    ORDER BY abbr
UNION ALL
SELECT id, abbr FROM singlist WHERE id <= 100000   and (abbr 条件)   ORDER BY abbr

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧