Prayer

在一般中寻求卓越
posts - 1226, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

用where in遇到null时的解决方法1

Posted on 2019-01-11 09:33 Prayer 阅读(5) 评论(0)  编辑 收藏 引用 所属分类: DB2
参考:https://www.2cto.com/database/201109/104960.html;http://ask.csdn.net/questions/680006
1 :  
SELECT
FROM
华东 
WHERE
公司代码 IN ( SELECT 公司代 FROM 备选客户 WHERE 公司代 != '' AND 公司代 IS NOT NULL );
2:用exists替换
SELECT
FROM
华东 
WHERE
EXISTS (
SELECT
公司代 
FROM
备选客户 where 华东.公司代码=`备选客户`.公司代);
3: in和exists一点区别
exists做为where 条件时,是先对where 前的主查询询进行查询,然后用主查询的结果一个一个的代入exists的查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出。
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
--------------------- 
作者:csdncooker 
来源:CSDN 
原文:https://blog.csdn.net/csdncooker/article/details/79299258 
版权声明:本文为博主原创文章,转载请附上博文链接!

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理