转自:http://www.maomao365.com/?p=6873

摘要:
下文通过案例分析in 关键字在值为null的应用举例,
分析出not in关键字在null值产生的异常信息
如下所示:

CREATE TABLE testA(keyId INT)
CREATE TABLE testB(keyId INT)
GO
INSERT INTO testA(keyId) VALUES (1)
INSERT INTO testA(keyId) VALUES (2)
INSERT INTO testA(keyId) VALUES (3)
GO
INSERT INTO testB(keyId) VALUES (1)
INSERT INTO testB(keyId) VALUES (2)
INSERT INTO testB(keyId) VALUES (4)
INSERT INTO testB(keyId) VALUES (NULL)
GO
SELECT * FROM testA WHERE keyId IN (SELECT keyId FROM testB)
-----输出------
/*
keyId
1
2
*/
SELECT * FROM testA WHERE keyId not IN (SELECT keyId FROM testB)
------无输出记录-----
/*
keyId
*/
INSERT INTO testA VALUES (NULL) ---在testA表中插入空值
SELECT * FROM testA WHERE EXISTS(
SELECT null FROM testB WHERE testA.keyId=testB.keyId
)
----输出----
/*
keyId
1
2
*/
SELECT * FROM testA WHERE not EXISTS(
SELECT null FROM testB WHERE testA.keyId=testB.keyId
)
/*
keyId
3
NULL
*/
SELECT * FROM testA WHERE testA.keyId NOT in (
SELECT testB.keyId FROM testB WHERE testB.keyId IS NOT NULL
) drop table testA
drop table testB

通过以上测试,我们可以看出not in 查询关键字如果子表中存在空值,则无法查询出任何记录,会导致异常产生,
需使用not exists获取相应的空值信息

最新文章

  1. C语言基础回顾
  2. Mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
  3. cs11_c++_lab1
  4. 设计模式之美:Creational Patterns(创建型模式)
  5. 学习之路三十九:新手学习 - Windows API
  6. GetWindowText和GetDlgItemText的区别
  7. Cocos发育Visual Studio下一个HttpClient开发环境设置
  8. A Free , Fast and Small Automatic Formatter for C , C++ , C# , Java Source Codes
  9. 从编译器角度理解C++中的引用和指针
  10. 25. leetcode 217. Contains Duplicate
  11. 阿里云全民云计算活动:云服务器ECS二折起(云主机)采购指南
  12. UVA-804 模拟
  13. RabbitMQ 通信过程
  14. selenium 对浏览器标签页进行关闭和切换
  15. tree-lstm初探
  16. Delphi 泛型详解
  17. [转]Android开源框架ImageLoader的完美例子
  18. 1.hive开窗函数,分析函数
  19. 用UITextView加载rtfd文件
  20. Ubuntu 设置 sudo 开机自启动项 无需输入密码

热门文章

  1. 浅谈《think in java》:二 一切都是对象
  2. Dependency injection in .NET Core的最佳实践
  3. leetcode — unique-paths
  4. java中Char到底是什么格式的编码
  5. 如何像Python高手(Pythonista)一样编程
  6. Perl的IO操作(1):文件句柄
  7. Redis持久化及其配置
  8. 伪指令 ENTRY 与 END
  9. 行为型---中介者模式(Mediator Pattern)
  10. EF 事务(转载)