表[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'
------------------
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'
使用指定的替换值替换 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下面
FROM [Northwind].[dbo].[t] where isnull(b,'')='' 这是查询B是NULL或''的其它类似
所以事先用isnull過濾掉null值,其實數據庫設計的時候應該盡量不要允許null,否則很多不可預測的結果或者錯誤
意思是当row1的值为空时则在选择结果中填入a的值代替。
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'
----
NULL
cc(2 行受影响)
SELECT *
FROM [Northwind].[dbo].[t] where isnull(b,'y')='y' 呢
它返回
a b
------------------
2 NULL
3 NULL
NULL y
NULL NULL
select isnull(null,'abc')select isnull('a','abc')--两句代码 试一下就知道了