dbms_random.value概念:
SQL> select dbms_random.value from dual;(dbms_random.value它是个随机值)
VALUE
----------
.217841143
即使你给它确定了位置(例如1至10,它也跟随自己小数值定位8位,取随机值)
SQL> select dbms_random.value(1,10) from dual;
DBMS_RANDOM.VALUE(1,10)
-----------------------
5.13335332
如果,想得到你想要的随机值,可以使用trunc
SQL> select trunc(dbms_random.value(1,10)) from dual;(这样,他就在你的设置范围内了)
TRUNC(DBMS_RANDOM.VALUE(1,10))
------------------------------
3
所以,你随机出数据的话,可以类似如下使用:
SQL> select id from zsd.zsdtest order by trunc(dbms_random.value(1,10));(其中zsdtest表就只有10条数据)
ID
----------
4
7
3
5
2
8
10
6
1
9
当然你之前的那个方法也同样适用,不过我建议上面那种。(上面的语法可控)
SQL> select id from zsd.zsdtest order by dbms_random.value
2 ;
ID
----------
9
7
8
5
1
10
4
2
6
3
已选择10行。