Случайный выбор записи - 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 ответа
Я не знаю "способа RDB" для этого, но если записи имеют последовательные идентификаторы, найдите идентификатор с наибольшим числом, а затем с помощью сценариев сгенерируйте случайный список идентификаторов для выборки. Что-то вроде:
SELECT TOP 1 FROM mytable ORDER BY id DESC;
Тогда в Python: records = random.sample(range(topId), 5)