select * from table where name is null

解决方案 »

  1.   

    IS [NOT] NULL
    确定一个给定的表达式是否为 NULL。语法
    expression IS [ NOT ] NULL参数
    expression是任何有效的 Microsoft® SQL Server™ 表达式。 NOT指定布尔结果取反。谓词反转其返回值,值不为 NULL 时返回 TRUE,值为 NULL 时返回 FALSE。结果类型
    布尔型返回代码值
    如果 expression 的值是 NULL,则 IS NULL 返回 TRUE;否则,返回 FALSE。如果 expression 的值是 NULL,则 IS NOT NULL 返回 FALSE;否则,返回 TRUE。注释
    若要确定表达式是否为 NULL,请使用 IS NULL 或 IS NOT NULL,而不要用比较运算符(例如 = 或 !=)。如果有一个参数为 NULL 或两个参数都为 NULL,那么比较运算符返回 UNKNOWN。 示例
    在下面的示例中,对于所有预付款少于 $5,000 或者预付款未知(或为 NULL)的书,返回它们的书号及预付款。请注意,显示的结果是在示例 C 执行后所返回的那些结果。USE pubs
    SELECT title_id, advance
    FROM titles
    WHERE advance < $5000 OR advance IS NULL
    ORDER BY title_id下面是结果集:title_id advance                    
    -------- -------------------------- 
    MC2222   0.0000                     
    MC3026   NULL                       
    PC9999   NULL                       
    PS2091   2275.0000                  
    PS3333   2000.0000                  
    PS7777   4000.0000                  
    TC4203   4000.0000                  (7 row(s) affected)
      

  2.   

    如果是30呢?
     where a = '' and b ='' and c='' .....是否要写成 where a = '' or a is null and b = '' or b = null and c ='' or c is null
    ?
      

  3.   

    select * from table where isnull(name, '') = ''ISNULL
    使用指定的替换值替换 NULL。语法
    ISNULL ( check_expression , replacement_value ) 参数
    check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型
    返回与 check_expression 相同的类型。注释
    如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。
      

  4.   

    如此说来,还是要写30个 isnull(xxx,'') = '':(
      

  5.   

    i think it may be could be limited by one simple phrase...
    thanks anyway