0

我对 2 个视图有疑问,当它联合时

查看 X

A    B    C

2    3

查看 Y

A    B    C

     3    4

这是我从 2 个视图中的查询

select * from view X
UNION 
select * from view Y;

我得到的结果:

A    B    C

2    3   

     3    4

我想要的结果(2 覆盖视图 Y @ 属性 A 中的空值):

A    B    C

2    3   

2    3    4

我怎么能得到那个?

4

2 回答 2

2

尝试这个

select nvl(A, lag(A) over (order by rownum)), B, C from (
  select A, B, C from X
  union 
  select A, B, C from Y
)

sqlfiddle

于 2012-11-26T07:18:30.340 回答
0

这是oracle中的一个答案

select * from 
(select x from tbl1
union 
select x from tbl2) t1
,
(select y from tbl1
union 
select y from tbl2) t2
,
(select z from tbl1
union 
select z from tbl2) t3
where t1.x is not null
order by t1.x desc nulls first;
于 2012-11-26T07:58:23.080 回答