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

Oracle SQL NULL 值对 IN/NOT IN语句的影响

  今天,有一个sql NOT IN语句,匹配条件里有一个null,结果什么都查不出来,同事觉得很难理解。其实只要明白一点就可以了,IN语句匹配的时候是用=,NOT IN匹配的时会用<>,就很容易理解了。
首先我们要知道,null在oracle是个特殊的东西,没有任何可比性,如果使用 =/<> 对比null,得到的始终是false。null 值只能用 is null/is not null来进行对比。
已知表table:
type  value
 SC    1
 PO    4
 BO    9
select * from table where type IN('SC',null);
这句话就相当于:select * from table where type='SC' or type=null;
因为已经有 type='SC'匹配,而type=null没有可比性,可以认为被忽略了,所以在 IN 语句里的 null 可以认为没有意义。
select * from table where type NOT IN('SC',null);
这句话就相当于:select * from table where type!='SC' and type!=null;
因为 type!=null 返回的始终是false,整个查询语句不会匹配任何一条记录,所以NOT IN语句里的null会使查询没有任何结果。


相关文档:

在Oracle下开发Java程序的经典问题解答

 
问题一:如保加载JDBC驱动程序:
 
正常我们加载驱动程序有三个途径:
 
1.Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,其实这时驱动程序类调用了DriverManager.registerDriver(driver)方法。
 
2.使用系统属性:System.getPro ......

mysql,sqlserver,oracle三种数据库的大对象存取

mysql 大对象存取:
  类型一般应该用mediumblod,
  blob只能存2的16次方个byte,
  mediumblod是24次方,
  一般来说够用了.longblob是32次方有些大.
  MYSQL默认配置只能存1M大小的文件,要修改配置,WIN版本的在mysql.ini文件中
  修改max_allowed_packet,net_buffer_length等几个参数,或直接SET GLOBAL va ......

JAVA连接ACCESS,SQL Server,MySQL,Oracle

import java.sql.*;
/*
* JAVA连接ACCESS,SQL Server,MySQL,Oracle数据库
*
* */
public class JDBC {
  
public static void main(String[] args)throws Exception {
  
   Connection conn=null;
  
       //====连接ACCESS数据库 ......

sqlserver移植为Oracle笔记

Oracle笔记
l         关于TRUNC函数
   SELECT
   RELATED_ID ,
      DOC_ID ,
      CAT_ID ,
      CAT_CODE ,
      RELEASE_DATE ,
&n ......

关于oracle导入sqlserver存在的唯一索引问题

我在把oracle数据导入sqlserver中时,发现在oracle中字段定义为唯一索引时,不同记录的此字段如果为空不被认为是重复的,但在sqlserver中如果此字段为唯一索引字段,不允许有2个以上的空值。郁闷。所以只好将sqlserver中的唯一索引字段手工修改为几个非空的值,但这样程序肯定要进行修改了。需要在程序中为此字段设置不重复 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号