Oracle查询结果:控制返回数据条数(oracle返回条数)

Oracle数据库是世界上最大的企业级关系型数据库之一,企业用户能够自由地使用它来处理自己的数据,因此每日的查询任务的执行结果也是必不可少的。可是有时,我们只关心某个张表中的前几条数据,而不需要返回真正的结果集。在这种情况下,控制Oracle查询结果返回数据条数就非常有必要。

为了控制Oracle查询结果返回数据条数,Oracle提供了两个函数:ROWNUM和FETCH。ROWNUM函数可以返回查询结果集中指定行的查询序号,而FETCH函数则能够从查询结果集中取出指定数量的行。两个函数结合在一起,可以有效地控制Oracle查询结果的条数。在实际使用中,常见的用法是使用ROWNUM作为过滤条件,仅仅返回前几条结果。

下面我们以一个实例来看看实际使用ROWNUM函数是如何控制查询结果条数的:

假如我们要查询员工表EMPLOYEE中名字中带“John”的前2条记录,可以使用如下SQL语句:

SELECT * 
FROM EMPLOYEE
WHERE NAME LIKE '%John%'
AND ROWNUM

以上的SQL语句中,我们把ROWNUM的值设置为3,这样就能够过滤掉查询结果中的大多数记录,只返回匹配条件的前2条记录:

EMPNO   NAME      GENDER
10004 John M
10010 Johnnie M

另外,还有一种方法,即使用FETCH函数从查询结果集中取出指定数量的数据记录。下面我们以上面的查询为例,使用FETCH函数来取出前2条记录:

SELECT *
FROM (SELECT * FROM EMPLOYEE
WHERE NAME LIKE '%John%' ORDER BY EMPNO FETCH FIRST 2 ROWS ONLY)

使用FETCH函数,只能够取出以ORDER BY的顺序的前2条记录,也就是说结果集不再是上面的10004 和 10010,而是只能 FETCH出表中EMPNO最小的那两条记录:

EMPNO   NAME      GENDER
10001 John M
10002 Johnson M

从上面的实例中我们可以看到,使用ROWNUM和FETCH两个函数可以有效地控制Oracle查询结果返回数据条数,从而更高效地使用Oracle来处理数据库。


数据运维技术 » Oracle查询结果:控制返回数据条数(oracle返回条数)