oracle数据库sql怎么查询第5到第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;

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27

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本身只能用 <=的比较方式,只有转成实列,才可做 >=的比较。

第2个回答  2012-12-18
select * from (select row_number() over(order by 你要进行排序的列) as RowID from 表) as T where RowID between 5 and 8
第3个回答  2012-12-18
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 按什么字段排序追问

太麻烦了,有没有简洁一点的语句?

追答

这个情况必须嵌套一层查出行号,再按行号筛远,无法再简单

第4个回答  2012-12-27
select * from (select * ,rownum row from table where rownum<=8) a
where a.row<=5
都这么简洁,你还嫌麻烦,我无语了……

oracle数据库sql怎么查询第5到第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...

sql语句,我有张新闻表,我要查询末尾第5条到第8条的数据。求解,是倒序...
如果是sqlserver,用select top 3 * from 这种格式,如果是oracle,用where rownum <=3这样的,具体可以留言给我

我需要取一张表里面的第5条至第8条的记录,Oracle的sql语句
select * from (select t1.*,rownum as rn from table as t1) where rownum between 5 and 8;

怎么从oracle数据库取最近插入表里的5条数据,是最近5条,距离当前时间最 ...
1、如果是一张不停插入,但是不做修改的表,那么恭喜,碰到最简单的情况了,可以通过查找rowid最大的5条记录,就是。2、如果不是第一种情况那么,提供以下几种办法可以尝试:a、查找最近用过的sql,你可以通过v$sql视图以last_active_time为关键字查看。b、使用快照闪回查询。(成功可能不大,除非你...

SQL中显示查询结果的前几条记录
在使用数据库查询语句的过程中,我们经常需要返回查询结果的前几条或者中间几条数据,下面是我总结的几种数据库常用的方法:(table是数据库表名,table2是table表的别名)1、SQLServersqlserver支持top关键字,返回前若干条数据。select top 5 * from table;\/\/ 返回前5行数据2、MySQLmysql支持limit,...

Oracle查询前几条数据的方法
在Oracle数据库中,由于缺乏直接的`select top`语句支持,通常采用`order by`和`rownum`的结合来实现类似功能。基本的查询策略是首先对表中的数据按指定列进行排序,然后通过`rownum`变量限制返回的记录数。以下是一个直观的解释:在Oracle中,当需要查询前几条数据时,通常采用以下步骤:首先,从指定表中...

在oracle数据库中需要查询出前8条记录的sql语句怎么写?
oracle中查询前8条记录需要用rownum 如emp表中有如下数据:现要查询此表中前8条记录,可用如下语句:select * from emp where rownum<=8;查询结果:

如何在oracle数据库中查询记录总条数
1、第一步,查询该库中的所有表,测试sql,代码见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,查询有多少个数据表,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,在TEST的开头编写一个查询表的脚本,每个表中的记录数,代码见下图,转到下面的步骤。4、第四步,执行完...

sql查询 如何获取查找某ID的一条记录在表中是第几条记录
如以下数据:ID NAME 1 张三 3 李四 5 王五 7 赵六 如查询王五这条数据在数据库里是第几条,可以这样。select t.rn from(select *,row_number() over(order by id) rn from 表名) twhere t.name='王五'结果会显示为3,也就是第三条数据 ...

oracle 怎么在存储过程中查询数据
oracle数据库中,已建立好的存储过程信息存储在系统表ALL_SOURCE 中,需要用sysdba身份登录数据库,进行查询操作,SQL命令如下:1 2 3 4 5 SELECT line,text FROM ALL_SOURCE WHERE TYPE='PROCEDURE'AND NAME='过程名称'AND OWNER='用户名'ORDER BY line;存储过程分成多行,每一行会存储为一条数据...

相似回答