Oracle 取某一行数据

梦里梦外; 2022-05-28 01:16 361阅读 0赞

使用rownum取数据

注意这种方法只能取没有排序或分组操作的数据

  1. //取emp表第三行数据
  2. select * from (select rownum a, ename from emp) where a = 3;

select rownum a, ename from emp;
这里写图片描述
把查询的结果当做一个表使用即可。


使用ROW_NUMBER() OVER()取数据

这种方法可以先把查询到的数据进行分组或排序再进行排号。

  1. //查询emp表中工资第二高的员工
  2. select ename from (select row_number() over(order by sal desc) a,ename from
  3. emp) where a =2

select row_number() over(order by sal desc) a,ename from emp;结果如下:
这里写图片描述
与第一种方法基本差不多,需要注意的是:
1、over后面的括号里写表的分组或排序语句
2、重命名需要放在over()后面

发表评论

表情:
评论列表 (有 0 条评论,361人围观)

还没有评论,来说两句吧...

相关阅读