NULLIF()函数接受两个参数。如果它们相等,那么返回空值;否则,返回第一个参数。
等价于下面的表达式:
case when expression1=expression2 then null else expression1 end
通常使用NULLIF()函数可以防止除零错误。
如果变量b为0,则下面的表达式将生成错误,但是,可以使用NULLIF()函数,这样如果变量b的值为0,它会返回NULL,而不是错误
select a/b select a/nullif(b,0)
sql2005 若字段定义的类型为datetime,插入为‘‘(空),那么会默认值为1900-01-01 00:00:00.000 解决方法查询的时候过滤下cast(nullif(‘‘,‘‘) as datetime) [sql] view plain copy select cast(‘‘ as datetime) , cast(nullif(‘‘,‘‘) as datetime) , isnull(cast(nullif(‘‘,‘‘) as datetime),getdate()) /* ----------------------- ----------------------- ----------------------- 1900-01-01 00:00:00.000 NULL 2009-02-25 17:18:15.140 (1 行受影响) */