У меня есть требование для запроса. Он должен выбрать каждое число из списка, который НЕ присутствует в столбце. В настоящее время я работаю нормально. Этот запрос возвращает каждое число между 1833
и 2000
, которое нет в таблице ATTR
.Использование временной переменной один раз в Oracle SQL Developer
SELECT LEVEL + 1833
FROM DUAL
CONNECT BY LEVEL <= (2000 - 1833)
MINUS
SELECT ID_TX
FROM ATTR
WHERE ID_TX BETWEEN 1834 AND 2000;
Что я хочу сделать, сделайте это как можно более удобным. Для этого я могу ввести две переменные: STARTING_ID
и LIST_LENGTH
. Теперь мой запрос выглядит так.
SELECT LEVEL + &STARTING_ID
FROM DUAL
CONNECT BY LEVEL <= &LIST_LENGTH
MINUS
SELECT ID_TX
FROM ATTR
WHERE ID_TX BETWEEN &STARTING_ID AND &STARTING_ID + &LIST_LENGTH;
Сначала я использовал &&
, но тогда я мог бы использовать этот запрос один раз. UNDEFINE
не может быть помещен в блок кода и в любом случае не очищал мои переменные. Теперь моя проблема заключается в том, что она считает, что каждая переменная &
различна, поэтому она вводит в себя 5 переменных вместо 2.
Как это сделать, где я все еще использую временные переменные (с или без всплывающего окна введите переменную), но человек, выполняющий запрос, должен ввести только два значения: 1833
и 67
?
Не знаю, как задать вопрос, не задавая вопрос, поэтому я задам вопрос = P. Но без вопросительного знака! Какой инструмент вы используете? = P –