select * from a where exist (select 1 from a where 你的条件)
union
select * from b where exist (select 1 from b where 你的条件)
and not exist (select 1 from a where 你的条件)
declare
v_temp number(10);
v_temp2 varchar(30);
begin
v_temp2 :=&输入条件;
select count(*) into v_temp from a where 列名 =v_temp2;
if (v_temp)!=0 then
select * from a where 列名 =v_temp2;
else
select * from b where 列名 =v_temp2;
end if;
end;
C1 C2
------- --------------------
100 Steven
101 Neena
102 Lex
103 Alexander
104 Bruce
105 David
6 rows selected
SQL> select * from b;
C1 C2
------- --------------------
103 Alexander
104 Bruce
105 David
106 Valli
107 Diana
108 Nancy
109 Daniel
7 rows selected
SQL>
SQL> SELECT *
2 FROM a
3 WHERE c1 > 101
4 UNION
5 SELECT *
6 FROM b
7 WHERE c1 > 101 AND NOT EXISTS (SELECT 1
8 FROM a
9 WHERE a.c1 > 101 AND rownum <=1);
C1 C2
------- --------------------
102 Lex
103 Alexander
104 Bruce
105 David
SQL>
SQL> SELECT *
2 FROM a
3 WHERE c1 > 106
4 UNION
5 SELECT *
6 FROM b
7 WHERE c1 > 106 AND NOT EXISTS (SELECT 1
8 FROM a
9 WHERE a.c1 > 106 AND rownum <=1);
C1 C2
------- --------------------
107 Diana
108 Nancy
109 Daniel
SQL>
SQL> SELECT *
2 FROM a
3 WHERE c1 = 101
4 UNION
5 SELECT *
6 FROM b
7 WHERE c1 =101 AND NOT EXISTS (SELECT 1
8 FROM a
9 WHERE a.c1 = 101 AND rownum <=1);
C1 C2
------- --------------------
101 Neena
SQL>
SQL> SELECT *
2 FROM a
3 WHERE c1 = 104
4 UNION
5 SELECT *
6 FROM b
7 WHERE c1 =104 AND NOT EXISTS (SELECT 1
8 FROM a
9 WHERE a.c1 = 104 AND rownum <=1);
C1 C2
------- --------------------
104 Bruce
SQL>
SQL> SELECT *
2 FROM a
3 WHERE c1 = 108
4 UNION
5 SELECT *
6 FROM b
7 WHERE c1 =108 AND NOT EXISTS (SELECT 1
8 FROM a
9 WHERE a.c1 = 108 AND rownum <=1);