Вы указали в своем вопросе, что НЕ хотите видеть решение, использующее таблицу двойных пустышек Oracle. Если в вашей таблице уже нет 100+ записей в таблице, из которой вы выбираете, я в настоящее время не вижу способа получить 100 записей, показывающих случайные числа, если вы не используете Connect By Level.
Ниже я предоставил ДВА ответа, которые дадут вам 100 случайных чисел в 100 строках вывода. В первом примере используется двойная таблица и Connect By Level с использованием LEVEL для ограничения строк CONNECT BY LEVEL <= 100
. ВТОРОЙ пример использует rownum и ограничивает строки, используя rownum <= 100
.
Using the dual table
SELECT LEVEL, floor(dbms_random.value(1,11)) AS rand_num /* Returns random numbers 1 thru 10 */
FROM dual
CONNECT BY LEVEL <= 100
;
Using any other table
В этом примере используется словарное представление Oracles all_objects, поскольку оно возвращает более 100 строк, поэтому я решил поработать с этим, но знаю, что в этом примере будет работать любая таблица / представление, которая возвращает более 100 строк.
SELECT floor(dbms_random.value(1,11)) AS rand_num, /* Returns random numbers 1 thru 10 */
rownum as at_row_num
FROM all_objects
WHERE rownum <= 100
;
На рисунке ниже показано, как выглядит результат при использовании примера с двумя таблицами.
