使用rownum取数据
注意这种方法只能取没有排序或分组操作的数据
//取emp表第三行数据
select * from (select rownum a, ename from emp) where a = 3;
select rownum a, ename from emp;
把查询的结果当做一个表使用即可。
使用ROW_NUMBER() OVER()取数据
这种方法可以先把查询到的数据进行分组或排序再进行排号。
//查询emp表中工资第二高的员工
select ename from (select row_number() over(order by sal desc) a,ename from
emp) where a =2
select row_number() over(order by sal desc) a,ename from emp;结果如下:
与第一种方法基本差不多,需要注意的是:
1、over后面的括号里写表的分组或排序语句
2、重命名需要放在over()后面