表[Northwind].[dbo].[t] a        b
------------------   
2 NULL
3 NULL
NULL y
NULL NULL
SELECT *
  FROM [Northwind].[dbo].[t] where isnull(b,'')='y' SELECT *
  FROM [Northwind].[dbo].[t] where isnull(b,'')='' SELECT *
  FROM [Northwind].[dbo].[t] where isnull(b,'ddfd')='fdfdf' 

解决方案 »

  1.   

    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。示例
    A. 将 ISNULL 与 AVG 一起使用
    下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。USE pubs
    GO
    SELECT AVG(ISNULL(price, $10.00))
    FROM titles
    GO下面
      

  2.   

    SELECT * 
      FROM [Northwind].[dbo].[t] where isnull(b,'')='' 这是查询B是NULL或''的其它类似
      

  3.   

    网上都找不到答案,在msdn上找~
      

  4.   

    其實主要是由于null = value這個判斷會出現unknown的結果,導致語句不能得到想要的result
    所以事先用isnull過濾掉null值,其實數據庫設計的時候應該盡量不要允許null,否則很多不可預測的結果或者錯誤
      

  5.   

    select isnull(a.row1,a)from table a
    意思是当row1的值为空时则在选择结果中填入a的值代替。
      

  6.   

    select * from (
    select ' ' as dd union all
    select null as dd union all
    select 'dd' as dd union all
    select 'cc' as dd )a
    where isnull(dd,'cc') ='cc'
      

  7.   

    dd
    ----
    NULL
    cc(2 行受影响)
      

  8.   

    isnull(dd,' ') 就是替代的意思!
      

  9.   

    还有
    SELECT * 
      FROM [Northwind].[dbo].[t] where isnull(b,'y')='y' 呢
    它返回
    a        b 
    ------------------  
    2 NULL 
    3 NULL 
    NULL y 
    NULL NULL 
      

  10.   

    --如果为null 的话 就显示 'abc'
    select isnull(null,'abc')select isnull('a','abc')--两句代码 试一下就知道了