select 部分选取

prince 2009-05-12 10:07:52
我现在要实现这样一个功能
在一个表中查询数据,然后按时间排序

比如说查到了1000个数据
那么我现在要每隔10个数据选择一个数据
那就是在这1000个数据中取出其中的100个

该怎么来写这段sql语句呢
...全文
167 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqb2008 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lihui_shine 的回复:]
引用 6 楼 prince 的回复:
那如果我要每隔6个数据选取一个呢

select * from
(select t.*,rownum num from (select * from 表 order by 时间) t)
where mod(num,6)=i

i取值0-5
[/Quote]
顶!
浪尖赏花 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 prince 的回复:]
那如果我要每隔6个数据选取一个呢
[/Quote]
select * from
(select t.*,rownum num from (select * from 表 order by 时间) t)
where mod(num,6)=i

i取值0-5
shiqiang_03 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hjianke 的回复:]
数据库自动在排序后编号的
[/Quote]
不好意思,引用错了

Where 条件中加上Mod函数就可以了
shiqiang_03 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hjianke 的回复:]
数据库自动在排序后编号的
[/Quote]

Where 条件中加上Mod函数就可以了
阿三 2009-05-12
  • 打赏
  • 举报
回复
select * from
(select id,datetime,name,rownum rn
from test_03 order by datetime)
where rn like '%0';
浪尖赏花 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 prince 的回复:]
不好意思,没有rownum这么明显的表示的
排序是以日期来拍的
[/Quote]

rownum是oracle自带的编号字段呀

select * from
(select t.*,rownum num from (select * from 表 order by 时间) t)
where num||'' like '%0'


这样应该可以了
prince 2009-05-12
  • 打赏
  • 举报
回复
那如果我要每隔6个数据选取一个呢
hjianke 2009-05-12
  • 打赏
  • 举报
回复
数据库自动在排序后编号的
gciyfzx07 2009-05-12
  • 打赏
  • 举报
回复
排完序后oracle数据库自动给那些记录序号的
superhsj 2009-05-12
  • 打赏
  • 举报
回复
把你要的排序加到1楼sql的from后面那个查询里就可以了
prince 2009-05-12
  • 打赏
  • 举报
回复
不好意思,没有rownum这么明显的表示的
排序是以日期来拍的

浪尖赏花 2009-05-12
  • 打赏
  • 举报
回复
select * from (select t.*,rownum num from 表 t) where num||'' like '%0'

红色的数字表示你要去的尾数,如果是0,则取10、20、30、40.....
如果是1,则取1、11、21、31......
.......
如果是9,则取9、19、29.....

17,075

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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