select ID from SmartCustomer where ID not in (select distinct CustomerID from SmartPromoter where CustomerID)
改为
select ID from SmartCustomer where ID not in (select distinct CustomerID from SmartPromoter where CustomerID is not null)

这个问题的根源在于null,众所周知,当判断一个值是否为null的时候,sql server要用is null 或者is not null,  在SQL Server中,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元操作符结果一定为Null,包括Null值本身。而在SQL Server中,Null值的含义转换为Bool类型的结果为False。 SQL Server提供了“IS”操作符与Null值做对比,用于衡量某个值是否为Null。

这里还要说一下not in的问题,应尽量避免使用not in,not in结果不准确,性能效率低。可以采用not exists方案替代

select ID from SmartCustomer a where  not exists (select ID from SmartPromoter b where a.ID=b.CustomerID)

最新文章

  1. Ubuntu下安装 jdk6
  2. HDU-敌兵布阵
  3. Windows Server 2008 R2 域控修改域用户密码复杂性
  4. mysql笔记04 MySQL高级特性
  5. 泰信---->20131025~20131101(周计划安排)
  6. windows下boost库的基本使用方法
  7. [转]VGA、QVGA、CIF、QCIF 。。。的含义
  8. MySQL基础之第16章 数据备份与还原
  9. Android实例-解决启动黑屏问题(XE8+小米2)
  10. android 随手记 videoview循环播放网络视频 和mediaplayer+sufaceview播放网络视频
  11. minicom-2.4安装配置
  12. Servlet处理Cookie
  13. trim()函数IE7/8不兼容
  14. 201312月CCF-2,ISBN号码分析
  15. Linux命令行总结
  16. Xamarin.Android 使用百度地图获取定位信息
  17. SQLServer之创建INSTEAD OF INSERT,UPDATE,DELETE触发器
  18. vue的搭建项目
  19. 两个UITableView的级联菜单
  20. kafka producer 发送消息简介

热门文章

  1. EasyUI treegrid 删除一条或多条记录
  2. 简单的PL/SQl链接远程ORACLE数据库方法
  3. common-lang3-version.jar 提供java.lang的扩展功能
  4. thinkphp 3.2.3 计划任务具体实现实例教程
  5. 【学习笔记】Manacher
  6. [z]计算机架构中Cache的原理、设计及实现
  7. Normalize.css与Reset CSS:定义浏览器统一的默认样式
  8. C#接口的三种实现方式
  9. mysql数据库怎么安装到自己的电脑上?
  10. Uniform & Attribute & Varying