我们有一种情况,我们使用第三方工具(jitterbit)输出文件,我们需要文件有标题行。所以我想我们可以在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
所有硬编码值的顶部部分总是先返回吗?
答案 0 :(得分:2)
将其下推到子查询中并添加一列来管理您的显式排序
SELECT client, email, alt_email
FROM (
select 'user.CustomAttribute.Client' client
,'user.Email' email
,'user.customAttribute.alternateEmail' alt_email
-- here we add an aid to ordering, 1 comes first
, 1 displayorder
from dual
UNION ALL
Select c.client
,c.email
,c.alt_email
-- here we add an aid to ordering, 2 comes after our header
, 2 displayorder
from contact )
order by displayorder, client;
答案 1 :(得分: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