Я новичок в StackOverflow и застрял в запросе на печать простых чисел от 2 до 1000. Я использовал входной запрос ниже, если это наиболее эффективный способ его кодирования.Печать простых номеров с SQL-запросом
WITH NUM AS (
SELECT LEVEL N
FROM DUAL CONNECT BY LEVEL <= 1000
)
SELECT LISTAGG(B.N,'-') WITHIN GROUP(ORDER BY B.N) AS PRIMES
FROM (
SELECT N,
CASE WHEN EXISTS (
SELECT NULL
FROM NUM N_INNER
WHERE N_INNER .N > 1
AND N_INNER.N < NUM.N
AND MOD(NUM.N, N_INNER.N)=0
) THEN
'NO PRIME'
ELSE
'PRIME'
END IS_PRIME
FROM NUM
) B
WHERE B.IS_PRIME='PRIME'
AND B.N!=1;
Я знаю, что этот вопрос задан несколько раз, и я требую лучшего решения, если оно есть. Более того, нужно вводить информацию о том, как это работает с MySQL/MS SQL/PostgreSQL.
Любая помощь поможет мне лучше понять.
Не могли бы вы уточнить, что вы хотите достичь? Предложенный вами запрос является «Oracle». Нужны ли вам эквиваленты в других РСУБД или лучший алгоритм для получения простых чисел? – lad2025
Да, мне нужен лучший алгоритм, если он доступен. Я могу получить детали для написания запроса на других платформах. – Doogle