关于SQL语句中如何判断where后某结果集是否为空的问题

m0_37626094 2017-06-26 02:37:05
例如:
结果集A等于 select id from X;
结果集B等于 select id from Y;
sql语句如下:
select * from Z where z.id in(这里如果A不为空就是 select id from X;如果A为空就是select id from Y)

其中结果集A和B都有可能是多个值。目的就是实现当结果集A一条数据都没有的时候,就选择结果集B。

请教这样的情况该如何写SQL语句能实现。
最好是Oracle标准下的。
谢谢
...全文
519 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨巷啊 2017-06-26
  • 打赏
  • 举报
回复

select * from Z where z.id in (select id from X)
UNION
select * from Z where z.id in (select id from Y WHERE 0 = (SELECT COUNT(ID) FROM X))
imcmuc 2017-06-26
  • 打赏
  • 举报
回复

 select * from test3 where id in (select id from test1 union select id from
test2,(select count(1) count from test1) where count=0);
alex259 2017-06-26
  • 打赏
  • 举报
回复
select * from Z where z.id in(nvl(A,B)) ???

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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