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

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


  • 相关阅读:
    函数模板的局限性级解决方法(第三代具体化)
    模板实现机制
    函数模板与普通函数的区别以及调用规则
    函数模板基本用法及泛型
    向上类型转换和向下类型转换
    虚析构和纯虚析构
    纯虚函数和抽象类
    多态原理
    静态联编和动态联编即多态的概念
    虚基类的内部工作原理
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4149253.html
Copyright © 2011-2022 走看看