SQL SERVER ISNULL 和NULLIF 以及ISNULL 和IS NULL 的区别

 

SQL Server里的 ISNULL 与 ASP 中的 IsNull不同,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

 

 

isnull() (效率)是有影响的,因为不能被优化。
但是 is null 则不一定了,也许能被优化,看你的SQL和索引的情况。
总之就是尽量避免使用 isnull(),或者,尽量在最小的结果集上用这个函数。

 

你可能感兴趣的:(SQL SERVER ISNULL 和NULLIF 以及ISNULL 和IS NULL 的区别)