Знаменитая задачка про поиск простых чисел средствами чистого SQL. Используется обобщенное табличное выражение – иерархический запрос, отбирающий все натуральные числа вплоть до максимального, определяемого параметром S, и полный перебор с дополнительным условием, что возможные делители проверяемого на простоту числа нужно искать среди чисел вплоть до квадратного корня из этого числа.
WITH t
AS ( SELECT LEVEL n, LEVEL * LEVEL n2
FROM DUAL
CONNECT BY LEVEL <= :S)
SELECT t1.n
FROM t t1
WHERE NOT EXISTS
(SELECT 1
FROM t t2
WHERE t1.n >= t2.n2
AND t2.n != 1
AND MOD(t1.n, t2.n) = 0)
P.S. Способ полностью рабочий, но не самый быстрый. Скорее, классический в плане знаний диалекта SQL от Oracle и обобщенных выражений.