基本上每种语言都有随机函数, 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的记录......