日期:2014-05-18 浏览次数:20941 次
select count(*) from v_gzjbwl_fund_amabzzpay a left join v_gzjbwl_fund_amabzzbankroll b on (a.member_code = b.member_code and a.fund_billnum = b.fund_billnum and (b.dd_type_settlement <> '承兑汇票' or b.dd_type_settlement <> '商业承兑汇票') and b.fund_billnum is not null); select count(*) from v_gzjbwl_fund_amabzzpay a left join v_gzjbwl_fund_amabzzbankroll b on ((b.dd_type_settlement <> '承兑汇票' or b.dd_type_settlement <> '商业承兑汇票') and a.member_code = b.member_code and a.fund_billnum = b.fund_billnum and b.fund_billnum is not null);
------解决方案--------------------
我刚才在SQL SERVER里作了个测试,如果把不表A或表B单方的条件加到left join的on里,对结果没有影响,不知道ORACLE里的是怎样。
建议还是把单方的条件放到where里比较保险
------解决方案--------------------
ORACLE的毕竟不懂 不妄加评论
------解决方案--------------------
光看这语句,应该不会查询出来不同吧!
貌似原来的LZ想说的是not in 三值逻辑中null的问题。
可这两个语句,如果给出结构的话,可以看到执行计划是一样的啊。
------解决方案--------------------
这样的事 真有点奇葩!!!
理论上应该是一样的
------解决方案--------------------
没区别