有两个表a,b,a.字段1=b.字段1,a.字段2=NULL,b.字段2=NULL
现在做个查询
Select a.*,b.* from a  join b on
(a.字段1=b.字段1)and(a.字段2=b.字段2)
但是查询是结果却为空
请问两个字段都为空的话不存在相等增关系呢

解决方案 »

  1.   

    字段2=NULL字段2 is NULL
      

  2.   

    我是說a.字段2和b.字段2的值都为空的(NULL),
    不是要查询字段2.值 is NULL
      

  3.   

    null 不能用等号进行判断,只能用 is null 或者 is not null进行判断,你把你的要求按照这个写就可以了不知道你要的是不是这样的
    (a.字段1=b.字段1)and(a.字段2 is null and b.字段2 is null) 
      

  4.   

    查到了,原来空字段不能用于连接的 可用ISNULL(a.字段2,'')=ISNULL(b.字段2,'')这样就可以连接了
      

  5.   

    唉!~~~你还是慢慢的了解sql吧,isnull是一个函数,判断字段is null 后返回一个指定的值,你返回的是一个空格你也可以返回任意值例如ISNULL(a.字段2, 'aaa')或ISNULL(a.字段2, 100)
      

  6.   

    null值是不确定的,比如说无穷大,无穷小,你能说两个无穷大相等吗?所以NULL不能等于null
      

  7.   

    NULL不能用“=”,要用IS 或者 NOT IS 来判断。
    NULL IS NULL 返回的是True。
      

  8.   

    null 不参与任何比较运算。
      

  9.   

    NULL是已经定义的常量,没法在给常量赋值。
      

  10.   

    任意的两个NULL值是都不相等的..判断某值是否为NULL,只能通过is[not] NULL 运算符来进行哦.除了IS[NOT]NULL外,空值不满足任何查找条件。如果NULL参与算术运算,则该算术表达式的值为NULL,如果NULL参与比较运算,则结果可视为False