NULLIF vs IFNULL

时间:2017-12-07 22:23:38

标签: mysql sql

你能解释一下sql-functions" NULLIF"之间的区别是什么?和#34; IFNULL"?

1 个答案:

答案 0 :(得分:3)

IFNULL(value-to-test, action-if-tested-as-null )

#equivalent case expression:
CASE WHEN value-to-test IS NULL THEN action-if-tested-as-null ELSE value-to-test END
如果第一个参数恰好为NULL,则

IFNULL指示查询输出第二个参数,否则输出第一个参数。 IFNULL是仅MySQL的函数名称,SQL标准备选方案是COALESCE

NULLIF(value-to-compare-a, value-to-compare-b )

#equivalent case expression:
CASE WHEN value-to-compare-a = value-to-compare-b THEN null ELSE value-to-compare-a END

NULLIF比较2个值。如果BOTH值是SAME,则返回NULL,否则返回第一个参数。

我个人总是喜欢使用COALESCE代替IFNULL。