Предположим, у меня есть супер-простая таблица (называемая useful_table
) с одним столбцом, как показано ниже:
+----------+
| a_number |
+----------+
| 2 |
| 4 |
| 8 |
+----------+
И предположим, у меня есть запрос с UNION
:
SELECT
a_number
FROM
useful_table
WHERE
a_number = 2
UNION
SELECT
a_number + 1
FROM
useful_table
WHERE
a_number = 2
;
Я ожидаю, что результат будет:
+----------+
| a_number |
+----------+
| 2 |
| 3 |
+----------+
Пример запроса выполняется в Oracle, но он должен быть применим к другим диалектам.
Код установки здесь:
create table useful_table(a_number NUMBER);
insert into useful_table values (2);
insert into useful_table values (4);
insert into useful_table values (8);
Возможно ли преобразовать этот запрос?
Всегда ли можно преобразовать UNION
s в альтернативу?
Допущения:
- Я использую подмножество (Oracle) SQL, что означает:
- Я не могу использовать временные таблицы.
- Я не могу использовать
UNION
или UNION ALL
.
- Обе стороны
UNION
имеют доступ к данным из одной и той же таблицы, но могут по-разному изменять необработанные данные.