2015-05-25 2 views
0

Я пытаюсь превратить этот результат:Turn два столбца в один SQL

Data1 Data2 
    A  C 
    A  C 
    A  D 
    B  F 

В этом:

Data 
A 
B 
C 
D 
F 

Есть ли способ сделать это в SQL без использования UNION, т.к. запрос для получения этих результатов очень длинный, и я не хочу его дважды называть.

+1

Почему вы не можете использовать Союз? –

+1

Какая версия Oracle? Вы можете использовать UNPIVOT, если вы действительно не хотите использовать UNION. – Taryn

+0

@ dancundy Я могу, но у меня есть очень длинный подзапрос, который я не хочу повторять – moondaisy

ответ

2

Проконсультироваться, чтобы получить этот результат, очень длинный, и я не хочу называть его дважды.

Я предполагаю, что это означает, что у вас сложный или дорогой запрос, который вы не хотите дублировать. Вы можете использовать факторинг подзапроса, также известный как общее табличное выражение или CTE, для обработки вашего существующего запроса, как если бы это была таблица:

with cte as (
    -- your existing query goes here 
) 
select data1 as data from cte 
union 
select data2 from cte 
order by data 
Смежные вопросы