www.qnmk.net > 如何在OrAClE中查询排序后的第一条记录

如何在OrAClE中查询排序后的第一条记录

在外面套一层查询,然后加where rownum

select a.* from ( select * from B order by B.id ) a where a.rownum = 1;

利用rownum. 例如: select * from (select rownum rn, t.* from test_table t order by col ) t1 where t1.rn=1;

假设排序的字段名字为field1降序, table name: tab SELECT field1, field2, field3... fieldn FROM (SELECT field1, field2, field3...fieldn, ROW_NUMBER() OVER(ORDER BY field1 DESC) AS RK ) FROM tab ) t WHERE rk = 1 00904是说列名不正确...

select * from (SELECT t.*,t.rownum FROM user_tab_cols t) where rownum>1;

一般是语句用法不对。 如有以下数据: 现在要求按sal列,也就是工资列,取出最小的一条。sql语句如下: select t.* from(select emp.*,row_number() over (order by sal) rn from emp) twhere rn=1;结果如下:

那只能是借助rownum来实现了. oracle中在加了rownum之后可进行排序。 使用rownum,一般是筛选部分行数为结果,所以若再排序,只是对部分结果进行排序,可能不是所需要的结果。 若在oracle先排序再rownum,则使用SQL嵌套可以实现,比如 select * ...

可以用rownum来查询一条记录。 如emp表中有如下数据。 要求查询deptno为20的,但只取一条记录,可用如下语句: select * from emp where deptno=20 and rownum

select * from (select * from table order by a )C where rownum=1

select * from (SELECT 表.*,rank() OVER(PARTITION BY A_ID ORDER BY A_DATE DESC) CT FROM 表)temp order by temp.ct,temp.A_DATE desc 是不是就可以了?试一下,没有实际的表。

网站地图

All rights reserved Powered by www.qnmk.net

copyright ©right 2010-2021。
www.qnmk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com