欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

mssql sqlserver in 关键字在值为null的应用举例

发布时间:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mssql sqlserver in 关键字在值为null的应用举例 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
原文:mssql sqlserver in 关键字在值为null的应用举例

转自: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) GOSELECT * 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获取相应的空值信息

总结

以上是生活随笔为你收集整理的mssql sqlserver in 关键字在值为null的应用举例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。