How to get records randomly from the oracle database? How to get records randomly from the oracle database? oracle oracle

How to get records randomly from the oracle database?


SELECT *FROM   (    SELECT *    FROM   table    ORDER BY DBMS_RANDOM.RANDOM)WHERE  rownum < 21;


SAMPLE() is not guaranteed to give you exactly 20 rows, but might be suitable (and may perform significantly better than a full query + sort-by-random for large tables):

SELECT *FROM   table SAMPLE(20);

Note: the 20 here is an approximate percentage, not the number of rows desired. In this case, since you have 100 rows, to get approximately 20 rows you ask for a 20% sample.


SELECT * FROM table SAMPLE(10) WHERE ROWNUM <= 20;

This is more efficient as it doesn't need to sort the Table.