解决方案 »

  1.   

    NOT IN的时候注意NULL值?没有什么关系吧。
      

  2.   

    select 1   where 2 not in (3,null)  --没有输出结果集
    select 1   where 2   in (2,null)    --输出1
      

  3.   

    意思就是 如果有null值的时候 最好不要使用 not in ,否则查询不到结果
      

  4.   

    isnull(xxx, 'NULL')这样就行了
      

  5.   

    where条件中对null的判断是false,也就是不返回
      

  6.   

    select 1   where 2   in (2,null) 
    2   in (2,null) 
    (ture or false) true
    --输出1
      

  7.   

    select 1   where 2   in (2,null) 
    2   in (2,null) 
    (ture or false) true
    --输出1
    select 1   where 2 not in (3,null) 
     2 not in (3,null) 
     not   (false or false)= true???
    这个咋解释???
      

  8.   

    T-SQL是三值逻辑,true、false和unknown,not true=false,not false=true,not unknown=unknown.
    另外,or是短路逻辑,只要其中一个为true,整个谓词就为true,
    所以:select 1   where 2   in (2,null)  为true,返回1
    而:select 1   where 2 not in (3,null) 
    2不等于3,同时2和null也不能匹配,所以为false