怎么根据查询结果执行不同的sql

木杵 2019-04-05 02:53:09
如果表1存在id=1,执行:select * from 表1,否则执行:select * from 表2
Oracle要怎么写呢?
表1和表2结构一样,只是内容不一样
...全文
930 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
洪武哥 2019-07-25
  • 打赏
  • 举报
回复 1
select * from a1 where exists (select null from dual where a1.id=1) union all select * from a2 where not exists(select null from a1 where a1.id=1)
nayi_224 2019-07-24
  • 打赏
  • 举报
回复
select*from tab1 where exists(select*from tab1 t1 where t1.id = 1)
union all
select*from tab2 where not exists(select*from tab1 t2 where t2.id = 1)
YeHuai1991 2019-07-19
  • 打赏
  • 举报
回复
采用存储过程实现,支持3楼
wilson1966 2019-06-06
  • 打赏
  • 举报
回复
SELECT CASE WHEN rowcount > 0 THEN select * from 表1 ELSE SELECT * FROM 表2 END FROM ( SELECT count(*) rowcount FROM 表1 WHERE id=1 ) a
lhdz_bj 2019-06-05
  • 打赏
  • 举报
回复
declare
v_cnt int;
begin
select count(1) into v_cnt from 表1 where id=1 and rownum<2;
if v_cnt>0 then
select * from 表1
else
select * from 表2
end if;
end;
大概这样吧,随手写的,没校对具体语法。
卖水果的net 2019-04-05
  • 打赏
  • 举报
回复
-- 可以写成这样,但是建议你分两步写比较好。 select * from t1 where id = 1 union all select * from t2 where not exists(select * from t1 where id =1)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧