`
jslfl
  • 浏览: 326898 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SQL not in 疑惑

sql 
阅读更多
在sql查询中,
select *
from t1 
where c not in (select c2 from t2)

如果t2中有c2有null的话,这句话就有可能执行的结果为,
只有在子查询必须过滤掉NULL值才正常
select *
from t1 
where c not in (select c2 from t2 where c2 is not null)


搜索原因得知
SQL-92标准要求对空值的等于(=)或不等于(<>)比较取值为FALSE。当SET ANSI_NULLS为ON时,即使   column_name中存在空值,使用WHERE column_name = NULL的SELECT语句仍返回零行;即使column_name中存在非空值,使用WHERE column_name  <> NULL的SELECT语句仍返回零行。
当SET ANSI_NULLS为OFF时,等于(=)和不等于(<>)比较运算符不遵从SQL-92标准。使用WHERE column_name   =   NULL的SELECT语句返回column_name中含有空值的行。使用WHERE column_name <> NULL的SELECT语句返回列中含有非空值的行。此外,使用WHERE column_name <> XYZ_value的SELECT语句返回所有非XYZ值和非NULL的行。

也可用exists
分享到:
评论

相关推荐

    经典SQL查询总结关于Exists,not Exists.in ,not in效率的说明。

    ### 经典SQL查询总结关于Exists, not Exists, IN, not IN 效率的说明 在数据库查询操作中,存在着多种方法来实现相似的功能,但不同的实现方式在性能上可能会有显著差异。本文将深入探讨 SQL 中 `EXISTS`, `NOT ...

    sql in,exists,not in,not exists区别

    SQL 中 IN、EXISTS、NOT IN、NOT EXISTS 的区别 IN、EXISTS、NOT IN、NOT EXISTS 是 SQL 中四种常用的条件判断运算符,它们之间的区别主要体现在使用场景、执行效率和语法结构上。 IN IN 是一种条件判断运算符,...

    SQLServer 优化SQL语句 in 和not in的替代方案

    在处理大量数据时,尤其需要注意避免使用效率较低的操作符,如`IN`和`NOT IN`。这些操作符虽然在编写时提供了简洁和易读性,但在执行效率上往往不如其他替代方法。本文将深入探讨`IN`和`NOT IN`的替代方案,并通过...

    SQL中对not in和not exist查询的替代算法.pdf

    "SQL中对not in和not exist查询的替代算法.pdf" 本文主要讨论了SQL中对not in和not exist查询的替代算法。首先,作者简要介绍了SQL语言的基本概念和特点,然后讨论了not in和not exist查询的低效性及其原因。接着,...

    10分钟学会SQL Sams Teach Yourself SQL in 10 Minutes

    Sams Teach Yourself SQL in 10 Minutes has established itself as the gold standard for introductory SQL books, offering a fast-paced accessible tutorial to the major themes and techniques involved in ...

    in exist not_in

    IN、EXISTS、NOT EXISTS、NOT IN 在 SQL 语句中的应用和区别 IN 语句和 EXISTS 语句都是 SQL 语句中用来判断是否存在某个值的语句,但是它们的实现机制和应用场景是不同的。 IN 语句是通过 hash 连接来实现的,它...

    SQL 语法 SQL 总结 SQL教程

    SQL In SQL Between SQL Aliases SQL Join SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null ...

    SQL2000 4 IN 1

    稳定版sql我搭建平台和学习sql时用的就是这个版本,很好用,希望能给你们带来方便,如果在安装当中有什么问题很乐意解答。

    在64位机器上使用plSQL连接Oracle的问题(SQLNet not properly installed)

    标题中的“在64位机器上使用plSQL连接Oracle的问题(SQLNet not properly installed)”提示了我们在64位操作系统中尝试使用plSQL Developer工具与Oracle数据库建立连接时遇到的一个常见问题,即SQLNet配置不正确。SQL...

    SQLServer Execpt和not in 性能区别

    在SQL Server中,`EXCEPT` 和 `NOT IN` 是两个用于查询数据的子句,它们都可以用来找出在一个集合中但不在另一个集合中的数据。然而,它们在性能方面可能存在显著的差异,尤其是在处理大量数据时。本文将深入探讨这...

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句2.txt

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句2.txt,欢迎下载!

    一次SQL Tuning引出来的not in , not exists 语句的N种写法2

    【标题】:“一次SQL Tuning引出来的not in , not exists 语句的N种写法2” 【描述】:文章并未直接提供描述,但从标题推测,该内容可能涉及数据库查询优化,特别是关于`not in`和`not exists`两种SQL查询子句的...

    Sql in split

    Sql in split Sql in split Sql in split Sql in split

    sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句

    为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS。 如 我要查询 Sendorder表中的冗余数据(没有和reg_person或worksite相连的数据) sql=”select Sendorder.id,Sendorder.reads,Send...

    sqlserver的存储过程与 where in 多值参数

    本文将探讨在SQL Server中,存储过程与`WHERE IN`子句结合使用时,处理多值参数的几种方法。 **方法一:拼接SQL字符串并调用`EXEC`** 这是最简单也是最直观的方法。你可以在存储过程中接收一个包含多个值的参数,...

    SQL2000_4In1数据库.iso

    sql2000官方个人版.、企业版、开发版 四合一

    SQL in 10 Minutes, Sams Teach Yourself (4th Edition)

    根据提供的文件信息,可以提取的知识点主要集中在书籍《SQL in 10 Minutes, Sams Teach Yourself (4th Edition)》的介绍和版权声明。这本书是为初学者准备的SQL学习资料,其第四版的PDF版本包含书签,对于想要学习...

    SqlUtils工具类,Sql IN 条件拼接工具类

    在实际使用中,`SqlUtils`可能还包含了其他辅助方法,比如处理`NOT IN`条件、动态构建`WHERE`子句等。这些方法通常会结合使用`StringBuilder`来构造SQL字符串,同时进行必要的边界条件检查,确保在空值或空集合时...

    SQL.in.a.Nutshell.3rd.Edition

    本书《SQL in a Nutshell, Third Edition》主要介绍了SQL语言的最新标准,即ANSI SQL2003(SQL3)版本,并详细记录了各个平台对SQL命令的实现。书中对关系型数据库管理系统(RDBMS)模型进行了简洁明了的解释,对...

Global site tag (gtag.js) - Google Analytics