赞
踩
发现oracle中的一个坑:not in 中如果结果集存在null,会使得所有行都不符合条件。建议用not extsts 可避免null的干扰
- create table test1 (col number);
- create table test2 (col number);
-
- insert into test1 values(1);
- insert into test1 values(2);
-
- insert into test2 values(1);
- insert into test2 values('');
-
- select * from test1 where col not in (select col from test2) --查询结果:空 结果和设想的不一样,2 判断 not in (1,null) 为false 。null的存在使所有行都不符合条件
-
- select * from test1 t where not exists (select 1 from test2 where col = t.col) --查询结果:2 符合预期
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。