易截截图软件、单文件、免安装、纯绿色、仅160KB

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 Text遭遇战[2009 12 31 16:15]

    手头正在进行一个项目,需要全文检索,经过同事仔细搜索发现:oracle提供oracle text的全文检索功能。
    oracle text的简单应用经同事测试结果正常,按照项目要求(项目预定方案word文档存入数据库(blob类型))使用oracle text查询结果确是为空,同事研究到此中断。
    ......

使用oracle 10g数据库创建脚本实现手动创建数据库

最近工作稍微比较空闲,便把使用DBCA 创建数据库时的输出的脚本拿来研究研究,并参照脚本文件,手动实现一个数据库的创建过程。首先使用DBCA工具创建一份建库脚本,整个脚本文件包含如下文件,
感觉应该是从BAT文件开始入手,打开BAT文件查看内容如下:
mkdir f:\oracle\product\10.2.0\admin\test\adump
mkdir f:\oracl ......

在hibernate中实现oracle的主键自增策略

转自:http://blog.csdn.net/scorpio3k/archive/2009/05/09/4162079.aspx
 在很多情况下,我们使用Hibernate在已经建立好数据库的基础上。在oracle中,如果已经建立好的数据库中使用了sequence
,则可以按照下面的步骤把它引入到Hibernate中:
   
   1、在oracle 首先创建sequence ......

Oracle数据库中分区表的操作方法


  在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用。
  
  在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百GB,有的甚至可以到TB级。虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号