sql知识收集

举报
tea_year 发表于 2021/12/29 23:38:59 2021/12/29
【摘要】 在SQL Server里面有top关键字可以很方便的取出前N条记录,但是Oracle里面却没有top的使用,类似实现取出前N条记录的简单方法如下: 方法1:利用ROW_NUMBER函数 取出前5条记录: SELECT  NO&n...

在SQL Server里面有top关键字可以很方便的取出前N条记录,但是Oracle里面却没有top的使用,类似实现取出前N条记录的简单方法如下:

方法1:利用ROW_NUMBER函数

取出前5条记录:

SELECT  NO  FROM  (
     SELECT  ROW_NUMBER() OVER ( ORDER  BY  NO ) RNO, NO  FROM  ROWNUM_TEST
) WHERE  RNO <= 5  ORDER  BY  NO  ;

取出中间5条记录:

1
2
3
SELECT  NO  FROM  (
     SELECT  ROW_NUMBER() OVER ( ORDER  BY  NO ) RNO,  NO  FROM  ROWNUM_TEST
WHERE  RNO  BETWEEN  AND  10  ORDER  BY  NO ;

 

方法2:利用子查询

取出前5条记录:

1
2
3
SELECT  NO  FROM  (
     SELECT  NO  FROM  ROWNUM_TEST   ORDER  BY  NO
) WHERE  ROWNUM <= 5   ORDER  BY  NO  ;

取出中间5条记录:

1
2
3
4
5
SELECT  NO   FROM  (
     SELECT  NO , ROWNUM RNO  FROM  (
         SELECT  NO  FROM  ROWNUM_TEST   ORDER  BY  NO
     )
WHERE  RNO  BETWEEN  AND  10   ORDER  BY  NO ;

选出累计访问量最大的10个ip地址,并按访问量降序排列。
        select top 10 ip, countip from 
       (select ip,count(*) as countip from records group by ip) a
       order by countip desc



文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/56498962

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。