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;
oracle数据库中用sql查询某表(ur_table_name )的第5到第8条数据的语句为:
之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,才可做 >=的比较。
太麻烦了,有没有简洁一点的语句?
追答这个情况必须嵌套一层查出行号,再按行号筛远,无法再简单