zoukankan      html  css  js  c++  java
  • oracle随机取数据

    ***

    针对oracle

    1,方法一,所有记录随机排序,然后选择5条记录

    select * from (
    select * from t_base_menu order by dbms_random.value) 
    
    where rownum<=5

    区别于下面这样,选择了5条记录,然后随机排序,所以一直是相同的5条记录

    select * from t_base_menu 
    
    where rownum<=5 
    
    order by dbms_random.value

    取出前10条记录的后5条,顺序不变

    select * from 
    (select t.menu_name,rownum as myrow from t_base_menu t 
    where rownum<=10 order by rownum desc) a where rownum<=5 
    order by a.myrow asc

    下面介绍一下dbms.random:

    dbms.random是oracle提供的一个随机函数包

    测试一:随机生成一个数

    dbms_random.value用法:
    生成一个大于等于0,小于等于1的38位小数 

    select dbms_random.value from dual;

    输出:0.395461555239436

    测试二:指定范围

    select dbms_random.value(100,0) from dual;

    输出:54.4656475243638

    select dbms_random.value(0,8) from dual;

    输出:7.5896620684203

    下面介绍rownum:

    oracle对查询出来的结果集,加上的序列号就是rownum,总是从1开始

    ---rownum>1得不到任何数据,因为第一条记录的rownum=1,不符合条件,所以删除,这样使得下一条记录的rownum又是1,

    这样下去,所以的记录都不满足条件,自然得不到结果,而rownum>=1,或者rownum>0可以得到所有记录,

    同理,between 0 and 10,between 1 and 10可以得到10条记录

    而between 2 and 10没有结果

    2,方法二

    ****

    参考地址:http://yisean.iteye.com/blog/608581

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    JS元素分组统计
    并发工具类
    【Spring-Cloud】mall eureka微服务模块建立
    【Spring-Cloud】mall父工程建立
    【MySQL】创建函数和存储过程,批量插入大数据
    【JAVA】http 状态
    【JAVA】如何写好代码
    【Docker】dockerfile,支持jdk8、 sshd、 python3.6
    【Hadoop】MapperReduce WordCount 代码示例
    【Hadoop】YARN 完全分布式配置
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4149253.html
Copyright © 2011-2022 走看看