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

例如:
结果集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标准下的。
谢谢

首先要保证结果集A和B不会有2条以上记录
in(select nvl((select id from X),(select id from X) from dual)追问

现在的问题就是结果集A、B都是多条记录。X表中的ID有若干个,Y表中的ID也有若干个。如果X表查不到数据,就从Y表里查。
请教有没有解决方法。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答