SQL Server里的 ISNULL 与 NULLIF

  • Post author:
  • Post category:其他


SQL Server 中有两个参数,语法:

ISNULL(check_expression, replacement_value)

check_expression 与 replacement_value 数据类型必须一致

如果 check_expression 为 NULL,则返回 replacement_value

如果 check_expression 不为 NULL,则返回 check_expression

NULLIF 用于检查两个表达式,语法:

NULLIF(expression, expression)

如果两个 expression 相等,则返回 NULL,该 NULL 为第一个 expression 的数据类型

如果两个 expression 不相等,则返回第一个 expression

Sql Server中两个判断是否为空的函数NULLIF和ISNULL的说明如下:

NULLIF:需要两个参数,如果两个指定的表达式等价,则返回null

例子:NULLIF(a,b)

说明:如果a和b是相等的,那么返回NULL,如果不相等返回a

select NULLIF(‘eqeqweqwe’,’1′) 结果是eqeqweqwe

select NULLIF(1,1) 结果是NULL

a和b的类型要一致

ISNULL:需要两个参数,目标是讲null替换为指定的值,若第一个参数不为null,则返回第一个参数

例子:ISNULL(a,b)

说明:如果a和b同时为NULL,返回NULL,如果a为NULL,b不为NULL,返回b,如果a不为NULL,b为NULL返回a,如果a和b都不为NULL返回a

select ISNULL(null,null)结果是null

select ISNULL(null,33)结果是33

select ISNULL(‘ddd’,null)结果是ddd

select ISNULL(44,33)结果是44

isnumeric:确认表达式是否为有效的数字形式