Oracle 取某一行数据

使用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()后面

猜你喜欢

转载自blog.csdn.net/zhengyikuangge/article/details/79710381