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

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


  • 相关阅读:
    面向对象的程序设计-2-创建对象
    面向对象的程序设计-1-理解对象
    react组件的生命周期
    react-router 组件式配置与对象式配置小区别
    mobx @computed的解读
    十分钟介绍mobx与react
    less学习
    git-简单流程(学习笔记)
    几种视频编码器的编译及使用方法
    一位程序员工作10年总结的13个忠告
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4149253.html
Copyright © 2011-2022 走看看