加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

【Oracle】【9】取前N条记录——rownum和row_number() over()的

发布时间:2021-04-03 13:48:35 所属栏目:站长百科 来源:网络整理
导读:媒介: 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 - 博客园
https://www.cnblogs.com/lexlin/archive/2012/06/19/2554315.html

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读