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

简介: 原文:mssql sqlserver in 关键字在值为null的应用举例转自:http://www.maomao365.com/?p=6873 摘要: 下文通过案例分析in 关键字在值为null的应用举例, 分析出not in关键字在null值产生的异常信息 如下所示: CREA...
原文: 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)
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获取相应的空值信息

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6月前
|
SQL 存储 关系型数据库
MSSQL之一 数据库系统简介 与SQL Server 2008概述
MSSQL之一 数据库系统简介 与SQL Server 2008概述
68 0
|
6月前
|
SQL
MSSQL系列之十二Sql Server 2005安装
MSSQL系列之十二Sql Server 2005安装
41 0
|
8月前
|
存储
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (下)
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (下)
|
6月前
|
SQL 存储 数据可视化
MSSQL之二 Sql Server中管理库与表
MSSQL之二 Sql Server中管理库与表
47 0
|
8月前
|
存储 SQL 数据库连接
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (上)
SqlServer存储过程应用二:分页查询数据并动态拼接where条件
|
9月前
|
SQL 前端开发 Java
sqlserver数据库,mybatis中时间范围查询的应用。
sqlserver数据库,mybatis中时间范围查询的应用。
76 0
|
SQL 存储 网络协议
Anolis/AliyunLinux 安装 (MSSQL)SQL Server 2022 数据库
其实很多企业有在 Linux 端安装 SQL Server 的需求,自从 2016 年以来,SQL Server on Linux 发展到现在已经非常成熟了,可以提供非常简便的安装方式,即便是 Always On 也可以轻松部署,本文就介绍如何在 Anolis/AliyunLinux 上安装 (MSSQL)SQL Server 2022 数据库。 在很多 SQL Server 的 Benchmark 中,SQL Server on Linux 都有着不输 WIndows 的性能体验,因此大家不必担心 SQL Server on Linux 的性能问题。
513 0
Anolis/AliyunLinux 安装 (MSSQL)SQL Server 2022 数据库
left join ... is null 的实际应用
left join ... is null 的实际应用
left join ... is null 的实际应用
|
SQL PHP 数据库
sqlserver数据库查询某个字段 为null的所有行数据
sqlserver数据库查询某个字段 为null的所有行数据
304 0
|
SQL 存储 安全
[WEB安全]MSSQL/SQL Server 提权手法详解(下)
[WEB安全]MSSQL/SQL Server 提权手法详解
182 0
[WEB安全]MSSQL/SQL Server 提权手法详解(下)

相关产品

  • 云迁移中心