Случайный выбор записи - VMS / RDB

Меня попросили написать оператор SQL для получения произвольного числа произвольно выбранных строк из таблицы данных в базе данных, размещенной на Oracle RDB в VMS.

В MS SQL это было бы просто:

SELECT TOP 5 * 
FROM MyTable  
ORDER BY NEWID()   

Но я не могу найти эквивалентный метод для RDB / VMS.

"Правильный" Оракул будет:

ORDER BY dbms_random.VALUE

Однако, это, кажется, не поддерживается в RDB на VMS.

Любая идея будет принята с благодарностью.

2 ответа

SELECT *
FROM MyTable 
ORDER BY NEWID()
LIMIT to 5

Я не знаю "способа RDB" для этого, но если записи имеют последовательные идентификаторы, найдите идентификатор с наибольшим числом, а затем с помощью сценариев сгенерируйте случайный список идентификаторов для выборки. Что-то вроде:

SELECT TOP 1 FROM mytable ORDER BY id DESC;

Тогда в Python: records = random.sample(range(topId), 5)

Другие вопросы по тегам