有表A,有a,b列如下: A B
1 12
null 12
null 12
null 12
null 12
null 12
null 12
null 12
123 121
null 121
null 121
null 121
null 122
null 122
null 122
134 122 执行语句后,希望的结果如下
A B
1 12
1 12
1 12
1 12
1 12
1 12
1 12
1 12
123 121
123 121
123 121
123 121
134 122
134 122
134 122
134 122
1 12
null 12
null 12
null 12
null 12
null 12
null 12
null 12
123 121
null 121
null 121
null 121
null 122
null 122
null 122
134 122 执行语句后,希望的结果如下
A B
1 12
1 12
1 12
1 12
1 12
1 12
1 12
1 12
123 121
123 121
123 121
123 121
134 122
134 122
134 122
134 122
select 1 a, 12 b from dual union all
select null a, 12 b from dual union all
select null a, 12 b from dual union all
select null a, 12 b from dual union all
select null a, 12 b from dual union all
select null a, 12 b from dual union all
select null a, 12 b from dual union all
select null a, 12 b from dual union all
select 123 a, 121 b from dual union all
select null a, 121 b from dual union all
select null a, 121 b from dual union all
select null a, 121 b from dual union all
select null a, 122 b from dual union all
select null a, 122 b from dual union all
select null a, 122 b from dual union all
select 134 a, 122 b from dual)SELECT b.a, a.b
FROM a, (SELECT * FROM a WHERE a IS NOT NULL) b
WHERE a.b = b.b
select decode(a.a,null,b.a,a.a) a, a.b
from a,(
select * from a where a is not null) b
where a.b=b.b
A B
---------- ----------
1 12
1 12
1 12
1 12
1 12
1 12
1 12
1 12
123 121
123 121
123 121
123 121
134 122
134 122
134 122
134 122