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

例如:结果集A等于selectidfromX;结果集B等于selectidfromY;sql语句如下:select*fromZwherez.idin(这里如果A不为空就是... 例如:
结果集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)
请教这样的情况该如何写SQL语句能实现。
最好是Oracle标准下的。
谢谢
展开
 我来答
tj_angela
2017-06-22 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2549万
展开全部
首先要保证结果集A和B不会有2条以上记录
in(select nvl((select id from X),(select id from X) from dual)
追问
现在的问题就是结果集A、B都是多条记录。X表中的ID有若干个,Y表中的ID也有若干个。如果X表查不到数据,就从Y表里查。
请教有没有解决方法。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式