2016-03-01 4 views
0

У нас есть ситуация, когда мы используем сторонний инструмент (jitterbit) для вывода файла, и нам нужен файл для строки заголовка. Поэтому я думал, что мы можем использовать объединение в представлении Oracle, которое мы используем для генерации данных для файла.Oracle Union All Как выводятся результаты

Но мой вопрос в том, будет ли Oracle всегда сначала читать верхний запрос профсоюза?

Здесь будет очень простой пример того, что я ищу

select 'user.CustomAttribute.Client' 
     ,'user.Email' 
     ,'user.customAttribute.alternateEmail' 
    from dual 
    UNION ALL 
    Select c.client 
     ,c.email 
     ,c.alt_email 
    from contact  

Так что верхняя часть со всеми трудно закодированных значений всегда возвращается первым?

ответ

2

надавите на вложенный запрос и добавить столбец управлять вашим явным заказом

+0

Отличная идея, я ценю обратную связь. Ура! – Travis

0

В Oracle нет гарантии или нет по умолчанию для таких запросов. Вы можете, однако, управлять нужный порядок, если вы используете подзапрос, такие как:

select * from (select 'user.CustomAttribute.Client' as client 
    ,'user.Email' as email 
    ,'user.customAttribute.alternateEmail' as alt_email 
from dual 
UNION ALL 
Select c.client 
    ,c.email 
    ,c.alt_email 
from contact) 
order by client, email, alt_email;  

Читать эту ссылку для получения более подробной информации: https://community.oracle.com/thread/2341048?tstart=0

+0

Здесь не нужен подзапрос; вы можете иметь заказ после двух ветвей объединения и ссылаться на псевдонимы столбцов из первой ветви. Но это не приведет к тому, что первые результаты отраслевой ветви сначала будут получены в результирующем наборе, который, по-видимому, нужен OP. Вам нужен фиктивный флаг, чтобы заставить подзапрос достичь чего-либо, как в ответе Майкла Бротона. –

 Смежные вопросы

  • Нет связанных вопросов^_^