oracle数据库sql怎么查询第5到第8条数据?

 我来答
freechan10
2019-12-24 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.8万
展开全部

1、创建测试表,

create table test_row(id number , value varchar2(20));

2、插入测试数据

insert into test_row select 20+level as id, 'value_'||level from dual connect by level<=30;

commit;

3、查询表中全量数据,select t.* from test_row t;

4、编写sql,根据ID进行排序,查询第5条数据到8条数据;

   select * from (select t.*, row_number() over(order by id) rn from test_row t ) 

    where rn >= 5 and rn <= 8;

kaixingui2012
推荐于2018-02-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6432万
展开全部

oracle数据库中用sql查询某表(ur_table_name )的第5到第8条数据的语句为:

SELECT *
  FROM (SELECT a.*, ROWNUM rn
  FROM ur_table_name a)
  WHERE rn >= 5 AND rn <= 8 ;

之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,才可做 >=的比较。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w362321104
2012-12-18
知道答主
回答量:2
采纳率:0%
帮助的人:3069
展开全部
select * from (select row_number() over(order by 你要进行排序的列) as RowID from 表) as T where RowID between 5 and 8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友da38773
2012-12-18 · 超过29用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:71.5万
展开全部
select * from (select t.*,row_number() over(order by t.id) as rn from table1 t)
where rn between 5 and 8;
--table1: 表名
--order by t.id 按什么字段排序
追问
太麻烦了,有没有简洁一点的语句?
追答
这个情况必须嵌套一层查出行号,再按行号筛远,无法再简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木子恋剑
2012-12-27
知道答主
回答量:36
采纳率:0%
帮助的人:7.3万
展开全部
select * from (select * ,rownum row from table where rownum<=8) a
where a.row<=5
都这么简洁,你还嫌麻烦,我无语了……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式