【发布时间】:2011-11-16 13:22:42
【问题描述】:
我知道可以将多个参数传递给COALESCE,但是当你想
只检查一个表达式以查看它是否不存在,您使用默认值还是使用ISNULL 是更好的做法?
两者之间有性能提升吗?
【问题讨论】:
-
COALESCE documentation 有这样的注释:ISNULL 和 COALESCE 虽然等效,但可以表现不同。涉及 ISNULL 且参数非空的表达式被认为是 NOT NULL,而涉及 COALESCE 且参数非空的表达式被认为是 NULL...
-
ISNULL也会将结果强制转换为第一个表达式as illustrated here的数据类型 -
这篇文章很好地说明了不同之处...sqlmag.com/t-sql/coalesce-vs-isnull
-
这篇文章也不错...mssqltips.com/sqlservertip/2689/…