`
hubusmile520
  • 浏览: 19220 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Oracle中NOT IN的问题

阅读更多

今天在开发的时候需要查询数据库中哪些学生有多个学号,写的sql如下:

     select * from(
  select count(t1.xh) as xhs,t2.uuid,t3.xm as xsxm,t3.sfzjh, t1.xjzt as xjzt from hust_xs_jb t1
   INNER JOIN hust_xx_identity t2 on t1.sfid= t2.sfid
    INNER JOIN hust_xx_profile t3 on t2.uuid=t3.uuid group by t2.uuid ,t3.xm, t3.sfzjh, t1.xjzt order by t3.xm) t
  where xhs>=2 and xjzt not in('15','17','19','21','30','31','32','33','34','35','36','37','38','39','40','51','52','53','54')

查出的数据为空,但是去掉where条件中的第二个条件(也就是NOT IN条件)却能查出31条数据,且其中只有一条的数据的XJZT字段为33,其他的都为null,应该查出30条数据啊,这是为什么呢?难道NOT  IN会将null值过滤掉?于是将sql稍加修改:

     select * from(
  select count(t1.xh) as xhs,t2.uuid,t3.xm as xsxm,t3.sfzjh, t1.xjzt as xjzt from hust_xs_jb t1
   INNER JOIN hust_xx_identity t2 on t1.sfid= t2.sfid
    INNER JOIN hust_xx_profile t3 on t2.uuid=t3.uuid group by t2.uuid ,t3.xm, t3.sfzjh, t1.xjzt order by t3.xm) t
  where xhs>=2 and (xjzt not in('15','17','19','21','30','31','32','33','34','35','36','37','38','39','40','51','52','53','54') or xjzt is null)

就能查出所需要的30条数据了。网上查了一下,说Oracle not in 如果返回的有null值的话,就不会有记录。

分享到:
评论

相关推荐

    oracle中exists_和in的效率问题详解

    Oracle 中 EXISTS 和 IN 的效率问题详解 EXISTS 和 IN 都是 Oracle 中的集合操作符,但它们在使用和执行效率上有所不同。本文将深入探讨 EXISTS 和 IN 的使用场景、执行机制和效率问题。 EXISTS 的使用场景和机制 ...

    Environment variable ORACLE_UNQNAME not defined错误解决

    在Oracle数据库管理及维护过程中,可能会遇到“Environment variable ORACLE_UNQNAME not defined”这样的错误提示。本文将围绕这一问题展开详细讨论,包括该错误产生的原因、环境配置要求以及具体的解决步骤。 ###...

    Oracle In和exists not in和not exists的比较分析

    在Oracle数据库中,`IN`、`EXISTS`、`NOT IN` 和 `NOT EXISTS` 是四个常用的子查询操作符,它们在SQL查询语句中扮演着不同的角色,且各有其性能特点。以下是对这些操作符的详细分析和比较。 1. `IN` 操作符: `IN` ...

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

    例如,在一个有百万级数据的表中,使用 IN 可能会导致性能问题,而使用 EXISTS 则可以提高查询效率。 结论 IN、EXISTS、NOT IN、NOT EXISTS 是 SQL 中四种常用的条件判断运算符,它们之间的区别主要体现在使用场景...

    解决maven仓库没有oracle jdbc驱动的问题

    解决maven官方库中没有oracle jdbc驱动的问题 刚研究maven不久,遇到一个比较头疼的问题,在工程里怎么下都下载不了oracle的jdbc驱动。 刚还以为是网络问题,重新下载了很多次,都提示maven库里找不到相关jar文件。...

    presto-oracle

    Presto OraclePlugin This is a plugin for Presto that allow ...Oracle Driver is not available in common repositories, so you will need to download it from Oracle and install manually in your repository.

    Oracle性能问题总结

    Oracle 的 From 子句表的顺序,Where 子句表达式的顺序,避免使用 ‘*’,使用 Truncate 代替 Delete,使用索引尽量减少对表的查询,避免使用右匹配或者中间匹配的模糊查询,并注意使用 exists、NOT EXISTS、NOT IN ...

    powerbuilder9 连接 oracle 10g

    2. 中文乱码问题:如果我们看到表的数据中中文是乱码,我们可以在系统的注册表中注册一个值来解决这个问题。 发布 PowerBuilder 9 应用程序 为了发布 PowerBuilder 9 应用程序,我们需要打包以下文件: 1. dll ...

    Oracle数据库常见维护问题手册-精典

    ### Oracle数据库常见维护问题手册-精典 #### 数据库基础 **数据库启动方式** Oracle数据库启动通常通过`SQL*Plus`工具来进行。首先确保已经安装并配置了正确的Oracle客户端环境,然后通过以下命令来启动数据库:...

    Oracle Access in delphi

    Allround Automations retains all right, title and interest in and to the software product. All rights not expressly granted are reserved by Allround Automations. If you have an unlimited user license ...

    oracle OCA 基本问题总结

    ### Oracle OCA 基本问题总结 #### 一、OCA认证介绍 OCA(Oracle Certified ...以上总结涵盖了 Oracle OCA 认证考试中的一些基本问题及其解决方案,希望能够帮助初学者更好地理解和掌握 Oracle 数据库的基本知识。

    Oracle中Using用法

    绑定参数列表为输入参数列表,即其类型为 IN 类型,在运行时刻与动态 SQL 语句中的参数(实际上占位符,可以理解为函数里面的形式参数)进行绑定。输出参数列表为动态 SQL 语句执行后返回的参数列表。 四、示例:...

    Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition

    Shows the very latest tuning features in Oracle Database 12c Enables the building of test cases without affecting production What You Will Learn Identify how and why complex SQL has gone wrong ...

    Oracle Solaris 11.1 Managing Services and Faults in Oracle Solar

    本指南《Managing Services and Faults in Oracle Solaris 11.1》旨在帮助用户了解如何有效地维护和诊断Oracle Solaris 11.1环境中的服务和故障。 服务管理是Oracle Solaris的核心特性之一,它通过Service ...

    Oracle常见问题的解决方法

    WHERE rowid NOT IN (SELECT /*+ INDEX(bad_table, any_index) */ rowid FROM bad_table WHERE substr(rowid, 1, 8) = '1234'); ``` 通过上述步骤,可以有效地从损坏的段中检索出可用数据,减少数据丢失的风险。 ...

    Oracle中常用的通配符

    ### Oracle中常用的通配符 在Oracle数据库中,通配符是进行模式匹配查询时非常重要的工具。通过本文,我们将详细介绍Oracle中常见的通配符及其用法,帮助读者更好地理解和运用这些符号,从而提高SQL查询的灵活性和...

    cx-Oracle安装必备oracle11g 64位 oci.dll

    在IT行业中,数据库管理系统是数据存储和处理的关键组件,Oracle数据库就是其中的佼佼者。cx_Oracle是一个Python模块,它允许Python程序与Oracle数据库进行交互。本篇将详细讲解cx_Oracle的安装以及与Oracle 11g 64...

    ojdbc6.jar ojdbc6-11.2.jar

    使用logstash连接oracle的时候必须使用匹配ojdbc,不然会报错Java:oracle.jdbc.driver.OracleDriver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library? 一个是oracle11.1....

Global site tag (gtag.js) - Google Analytics