【Oracle】【9】取前N条记录——rownum和row_number() over()的
发布时间:2021-04-02 14:19:46 所属栏目:站长百科 来源:网络整理
导读:前言: 1,取前10条数据 2,取第10条到第20条的数据 3,排序后再取前10条 4,分组后取前10条 正文: 1,最普通的情况,取前10条数据 select * from table where rownum = 10 2,取第10条到第20条的数据 注:因为rownum本身只能用 =的比较方式,所以用rownum
前言: 1,取前10条数据 2,取第10条到第20条的数据 3,排序后再取前10条 4,分组后取前10条 正文: 1,最普通的情况,取前10条数据 select * from table where rownum <= 10 2,取第10条到第20条的数据 注:因为rownum本身只能用 <=的比较方式,所以用rownum rn把rownum转成实例,这样就可以做 >=的比较了 select * from (select *,rownum rn from table ) where rn >= 10 and rn <= 20 3,排序后再取前10条 select * from (select * from table order by name desc) where rownum <= 10 有另外一种写法,效率更高,但是只对主键字段有效。其他情况下会先取前10条数据,再对这10条数据排序 select * from table where rownum <= 10 order by name desc 4,分组后取前10条。根据id分组,在分组内部根据name排序,再取前10条 select * from (select t.*,row_number() over(partition by id order by name desc) rn from table t ) where rownum <= 10 参考博客: Oracle中查询前10条记录,类似top 方法 - lex.lin - 博客园 (编辑:ASP站长) 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
未处理完善
-
无相关信息
最新更新