oracle-Rownum伪列

我们经常会查询一些间断的数据,好比喻查询成绩,一般都会列出前十名和后十名,这个时候我们就可以用到伪列rownum,它可以根据条件查询到排行前面或者后面的数据。

举一个例子:查询员工表中,根据姓名排行前面十名员工的信息。

select *

from (select * from employees order by first_name)

where rownum<=10

但是对于rownum只能使用<或<=,而使用=,>,>=都将不能返回任何数据

例如:查询员工表中,根据姓名排行排十一到二十的员工的员工信息。

select *

from (select * from employees order by first_name)

where rownum>10 and rownum<=20

正确的写法如下:

select *

from (select rownum rn,employee_id,salary,first_name

           from (select employee_id,salary,first_name

                      from employees order by first_name))

where rn>10 and rn<=20

猜你喜欢

转载自blog.csdn.net/qq_44551864/article/details/89081801