合并VS案例[关闭](Coalesce vs Case [closed])

2019-08-02 05:08发布

我有5个字段被带回值和NULLS的混合物。 为报告的目的,我需要用一个值替换任何潜在的空值。 我正在询问该数据库是通过SSIS包每晚更新。

很显然,我需要改变.dtsx程序文件中加入一些SQL停止度过每一天被带到空值。

我的问题是:

什么是与这些零点在性能方面处理的最有效的方式。 到目前为止,香港专业教育学院确定COALESCECASE来对付他们和IM倾向于COALESCE因为我的替代NULL是不会改变,但我很想听到的话,以及为什么这将是最有效的方法。

Answer 1:

COALESCE()是一个字面上的简写CASE语句,他们将执行相同。

然而,随着podiluska提到, ISNULL()偶尔可以比更快的CASE语句,但这些功能是不太可能的瓶颈你的程序很可能是微乎其微的增加。

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



Answer 2:

在某些情况下, ISNULL快于CASECOALESCE 。 然而,如果跨平台的兼容性是一个问题, COALESCE是ANSI标准。



Answer 3:

我更喜欢使用COALESCECASE 。 而最有趣的是代码比使用更短的CASE



文章来源: Coalesce vs Case [closed]