不积跬步,无以至千里

博客园 首页 新随笔 联系 订阅 管理

基本上每种语言都有随机函数, ORACLE的PL/SQL也不例外, 以下是其随机函数的一个例子:

[@more@]

SQL> select id, username from test1 where rownum <11;

ID USERNAME
---------- --------------------------------
1 tcl
2 yingyang
4 C04
8 FJRADIO
7 aomei
9 3721
10 CHFIND
11 FLASHEMPIRE
12 YUBANG
13 HAOYE

以下语句则可以随机选出一定的记录

SQL> select id, username from test1 where rownum <11 order by dbms_random.value();

ID USERNAME
---------- --------------------------------
9 3721
4 C04
11 FLASHEMPIRE
1 tcl
7 aomei
10 CHFIND
13 HAOYE
8 FJRADIO
12 YUBANG
2 yingyang

明显地, 数据与第一个相比,就比较随机了

相应的逻辑为:

查询语句一直loop, 直至出現dbms_random.value = 1为止, 则产生一条rownum = 1的记录,同理,再一直loop 下去, 直至出現 dbms_random.value = 2产生一条rownum = 2的记录......

posted on 2016-02-15 19:12  Zeroassetsor  阅读(1049)  评论(0)    收藏  举报