Coalesce vs Case

Jso*_*ham 8 sql t-sql sql-server-2008

我有5个字段带来了价值和NULLS的混合.出于报告目的,我需要用值替换任何潜在的NULLS.我正在询问的数据库每晚都会通过SSIS包更新.

显然,我需要更改.dtsx文件以通过添加一些SQL来阻止NULLS每天通过.

我的问题是:

在性能方面处理这些NULLS的最有效方法是什么.到目前为止,我已经确定COALESCECASE处理它们并且我倾向于COALESCE因为我的替代方案NULL不会改变,但我很想知道这是否以及为什么这将是最有效的方法.

mrm*_*lsy 13

COALESCE()它实际上是一个CASE声明的简写,它们的表现相同.

然而,正如podiluska所提到的,ISNULL()偶尔会比CASE声明更快,但它可能是一个微不足道的增加,因为这些功能不太可能阻碍你的程序.

http://sqlblog.com/blogs/adam_machanic/archive/2006/07/12/performance-isnull-vs-coalesce.aspx


pod*_*ska 7

在某些情况下,ISNULLCASE或更快COALESCE.但是,如果跨平台兼容性是一个问题,COALESCE则是ANSI标准.


Joh*_*Woo 5

我更喜欢使用COALESCEover CASE。最有趣的是代码比使用CASE.