Oracle11g Oracle 11g中的dbms_random.random是随机函数吗?

Oracle11g Oracle 11g中的dbms_random.random是随机函数吗?,oracle11g,Oracle11g,如何选择随机数目的记录?当我使用DBMS_RANDOM.RANDOM并按此排序时,记录不是随机的。好的,我有1000条我想要的记录,但我看到ID不是随机的。。。为什么?您知道Oracle 11g中的另一个真正随机的函数吗?如何从整个表中随机获得1000条记录 我的方式: SELECT ... FROM TAB1 INNER JOIN TAB2 ON TAB1.ID = TAB2.ID ORDER BY DBMS_RANDOM.RANDOM 我也使用DBMS_RANDOM.VALUE,但结果是

如何选择随机数目的记录?当我使用DBMS_RANDOM.RANDOM并按此排序时,记录不是随机的。好的,我有1000条我想要的记录,但我看到ID不是随机的。。。为什么?您知道Oracle 11g中的另一个真正随机的函数吗?如何从整个表中随机获得1000条记录

我的方式:

SELECT ... FROM TAB1 INNER JOIN TAB2 ON TAB1.ID = TAB2.ID ORDER BY
DBMS_RANDOM.RANDOM 
我也使用DBMS_RANDOM.VALUE,但结果是一样的

示例结果:ID3354689037506693

好像它接受一个分区,然后通过DBMS_RANDOM.RANDOM生成一个orber。谢谢你的帮助

如何选择随机数目的记录

DBMS_RANDOM.VALUE将随机返回行,当同时指定order by时,它将随机排序

SQL> SELECT empno FROM emp ORDER BY empno;

     EMPNO
----------
      7369
      7499
      7521
      7566
      7654
      7698
      7782
      7788
      7839
      7844
      7876
      7900
      7902
      7934

14 rows selected.

SQL> SELECT empno FROM(
  2  SELECT * FROM emp ORDER BY dbms_random.VALUE)
  3  WHERE ROWNUM <=10
  4  /

     EMPNO
----------
      7654
      7902
      7782
      7566
      7839
      7369
      7900
      7499
      7876
      7844

10 rows selected.

SQL>

因此,您可以获得行的随机顺序。

这是随机的。。。你想在10个随机ID上执行选择还是随机排序结果,因为这是两个不同的东西…如果这不是随机的,那么你对随机的定义是什么?那么你每次都得到相同的1000行,但排序不同吗?您在哪里限制行数?例如,您没有显示rownum筛选器,但我怀疑您在错误的位置执行此操作。是的,这对我来说是随机的,因为我看不到分区。你明白吗?在我的结果中,我看到一个随机ID,但在1到100、100到200等的块中,我想要一个从1到1000的随机记录。当我选择附加列1,0时,我的偶然分布为500:500。。。也许我不能使用连接或。。。