`

oracle中not in null 查询空值

阅读更多

在工作中执行以下SQL:

Select   *   from   table1 A  where  A.col1  not   in  (  select  col1  from  table2 B )

 

发现当B表中存在col1字段为空的数据时, 查询结果集是空。

在网上查询了一番,原来真的存在这个问题:

举例说明:     5 not in ('2','3','4',' ')   等价于 not (false or false or false or null)

=> not  null   即 查询不出结果集来。

 

所以如果非要用not in :

Select   *   from   table1 A  where  A.col1  not   in  (  select  col1  from  table2 B  where  B.col1  is   not   null  )

 

具体分析可以参考:

http://x-spirit.iteye.com/blog/615603

分享到:
评论

相关推荐

    oraclesql判断值为空-Oracle-sqlserver的空值(null)判断.pdf

    Oracle SQL 中判断值为空或 Null 的方法有多种,在本文中,我们将介绍 Oracle 和 SQL Server 中的空值判断方法。 Oracle 中的空值判断 在 Oracle 中,可以使用 `NVL` 函数来判断值为空或 Null。`NVL` 函数的语法...

    Oracle null的使用

    Oracle 中空字符串同 null,不同于 MSSQL 中真正在将空串视为一个有意义的标识,即不是一个空值。Sybase 中同样不存在长度为 0 的字符串,但是与 Oracle 不同的是,Sybase 并不将空串视作 NULL,而是视作与只包含一...

    Oracle数据库空值应用方法研究.pdf

    在Oracle数据库中,NULL是一个保留字,用于表示空值。 1. 空值的基本含义 - 空值(NULL)在数据库中表示未知或无意义的值,它不同于数字0、空字符串或空日期。 - 在关系模型中,空值用于满足实体完整性和参照完整...

    oracle中的空值技巧[参考].pdf

    4. **空值处理**:在查询中,可以使用`IS NULL`或`IS NOT NULL`来特指或排除空值。例如,找出所有没有佣金的员工,可以写`WHERE comm IS NULL`。 5. **NULL合并**:在UPDATE或SELECT语句中使用COALESCE函数可以将...

    关于oracle空值的解决方法[收集].pdf

    Oracle数据库中的空值(NULL)处理是数据库管理中常见的问题,尤其在进行复杂查询和数据分析时,理解并正确处理空值至关重要。Oracle空值并不是一个实际的值,它表示未知或者缺失的数据。以下是对Oracle空值及其解决...

    提高Oracle数据库查询效率

    在WHERE子句中使用`IS NULL`或`IS NOT NULL`通常是为了检查某列是否为空值。但这种方式在某些情况下可能不是最优选择,尤其是在列上存在索引的情况下。例如,如果想检查`status`列是否为特定值,可以考虑直接使用不...

    oracle查询语句优化

    ### Oracle查询语句优化知识点详解 #### 一、概述 Oracle数据库因其强大的功能和灵活性,在企业级应用中占据着重要地位。随着业务的发展,数据库的数据量急剧增长,如何提高查询效率成为了亟需解决的问题之一。本文...

    oracle查询语句大全

    根据提供的文件信息,以下是从标题、描述、标签和部分内容中提取的关键知识点,这些知识点主要围绕Oracle数据库中的查询语句和基本操作展开。 ### Oracle 查询语句大全 #### 1. 查询表信息 - **查询所有表**: - `...

    oracle子查询PPT课件.ppt

    * 空值问题可以通过使用IS NULL或IS NOT NULL操作符来解决。 九、子查询的注意事项 * 子查询要包含在括号内。 * 将子查询放在比较条件的右侧。 * 除非进行Top-N分析,否则不要在子查询中使用ORDER BY子句。 * 单行...

    一个选查询后插入到一个临时表的oracle函数

    此Oracle函数`NS_DNAF_GetPaidUpDeposit`主要功能是从指定表中查询客户的账户余额,并返回这一数值。通过使用游标和循环结构,它可以有效地处理查询结果。对于需要频繁访问数据库并执行相似查询的应用场景来说,这样...

    Oracle基础 SQL限定查询和排序PPT学习教案.pptx

    常用的条件运算符包括关系运算符(如>、<、=等)、范围运算符BETWEEN...AND、空值判断IS NULL和IS NOT NULL,以及IN和NOT IN判断。例如,你可以查询工资低于某个值的员工,或者查找具有特定属性(如职位、姓名)的...

    Oracle1.pdf

    =`)、一般比较(如`>`, `, `>=`, `)、范围查询(`BETWEEN`)、枚举查询(`IN`,`NOT IN`)以及空值处理(`IS NULL`, `IS NOT NULL`)。例如,可以使用`WHERE`子句结合这些条件来筛选特定部门、工资范围或特定名称...

    有关于oracle数据库的sql优化

    目前的需求是这样的,要求在职工表中查询名字中包含cliton的人。可以采用如下的查询SQL语句: select * from employee where last_name like '%cliton%'; 这里由于通配符(%)在搜寻词首出现,所以Oracle系统不使用...

    Oracle——sql语句优化

    Oracle数据库在处理NOT IN查询时,往往需要遍历整个表,这无疑增加了查询的时间复杂度。 **推荐方案**:采用NOT EXISTS或外连接结合空值判断的策略,既可确保索引的利用,又能提高查询速度。 #### 操作符(不等于...

    Oracle 查询代码

    在Oracle数据库中,使用`SELECT`语句可以指定查询结果中包含的列。例如: ```sql SELECT NAME, HIRE_DATE, TITLE, BONUS FROM teachers WHERE bonus IN (500, 600); ``` 此查询返回教师表中奖金为500或600的教师的...

    如何将数据库中的NUll写入到数据库中去

    例如,整型和日期时间类型通常不允许NULL,除非明确声明为允许NULL的(如MySQL的NOT NULL DEFAULT NULL)。在创建表时,要确保允许NULL的列使用了正确的数据类型。 6. NULL vs. 空字符串: 值得注意的是,NULL和空...

    oracle子查询PPT学习教案.pptx

    对于子查询中涉及空值(NULL)的问题,Oracle处理空值的方式与非空值不同,需要特别注意,可能需要使用`IS NULL`或`IS NOT NULL`这样的条件来处理空值情况。 总结来说,Oracle子查询是数据库查询中的一种强大工具,...

    oracle学习笔记

    本文将深入探讨Oracle数据库的一些核心知识点,包括进程、线程、SQL语句中的空值处理、查询技巧以及数据库的启动与操作。 首先,理解Oracle中的进程和线程是至关重要的。在操作系统层面,进程是资源分配的基本单位...

Global site tag (gtag.js) - Google Analytics