Добавить это:
AND rownum <= 100
к вашему предложению WHERE.
Однако, это не будет делать то, что вы просите.
Если вы хотите выбрать 100 случайных строк, отсортировать их и затем вернуть их, вам придется сначала сформулировать запрос без ORDER BY, затем ограничить его до 100 строк, затем выбрать из них и отсортировать. *
Это может работать, но, к сожалению, у меня нет сервера Oracle для тестирования:
SELECT *
FROM (
SELECT *
FROM myTable
WHERE SIZE > 2000
AND rownum <= 100
) x
ORDER BY NAME DESC
Но обратите внимание на «случайную» часть, вы говорите «дайте мне 100 строк с размером> 2000, мне все равно, какие 100».
Это действительно то, что вы хотите?
И нет, на самом деле вы не получите случайный результат в том смысле, что он будет меняться каждый раз, когда вы запрашиваете сервер, но вы находитесь в зависимости от оптимизатора запросов. Если загрузка данных и статистика индекса для этой таблицы со временем меняются, в какой-то момент вы можете получить данные, отличные от предыдущих запросов.