select * from dual where dummy not in ( NULL ) -- no rows selected
select * from dual where NOT( dummy not in ( NULL ) ) --no rows selected
知觉上这两句SQL总有一句会取出数据的,但是实际上都没有。
哪位高手指点一下呀

解决方案 »

  1.   

    说明:
    1、等价于没有任何值、是未知数。
    2、NULL与0、空字符串、空格都不同。
    3、对空值做加、减、乘、除等运算操作,结果仍为空。
    4、NULL的处理使用NVL函数。
    5、比较时使用关键字用“is null”和“is not null”。
    6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,
       count(*)中,用nvl(列名,0)处理后再查。
    7、排序时比其他数据都大(索引默认是降序排列,小→大),
       所以NULL值总是排在最后。select * from dual where dummy is NULL
      

  2.   

    对null 值的比较只能是is , is not , null通过其他方式和任何值(包括null)的比较结果都是空
    对null值的处理可以通过nvl(,)
      

  3.   

    说的对,null怎么可能用In取出数来呢
      

  4.   

    呵呵,null真是个好东西,好用的时候好用的不得了,烦你的时候烦的不得了。
      

  5.   

    子陌红尘 ,现在到Oracle来拉!!