Случайный выбор записи - VMS / RDB - PullRequest
2 голосов
/ 29 июня 2011

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

В MS SQL это будет просто:

SELECT TOP 5 * 
FROM MyTable  
ORDER BY NEWID()   

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

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

ORDER BY dbms_random.VALUE

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

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

Ответы [ 2 ]

0 голосов
/ 23 июля 2011

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

SELECT TOP 1 FROM mytable ORDER BY id DESC;

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

0 голосов
/ 29 июня 2011
SELECT *
FROM MyTable 
ORDER BY NEWID()
LIMIT to 5
...