我有5个字段被带回值和NULLS的混合物。 为报告的目的,我需要用一个值替换任何潜在的空值。 我正在询问该数据库是通过SSIS包每晚更新。
很显然,我需要改变.dtsx程序文件中加入一些SQL停止度过每一天被带到空值。
我的问题是:
什么是与这些零点在性能方面处理的最有效的方式。 到目前为止,香港专业教育学院确定COALESCE
和CASE
来对付他们和IM倾向于COALESCE
因为我的替代NULL
是不会改变,但我很想听到的话,以及为什么这将是最有效的方法。
我有5个字段被带回值和NULLS的混合物。 为报告的目的,我需要用一个值替换任何潜在的空值。 我正在询问该数据库是通过SSIS包每晚更新。
很显然,我需要改变.dtsx程序文件中加入一些SQL停止度过每一天被带到空值。
我的问题是:
什么是与这些零点在性能方面处理的最有效的方式。 到目前为止,香港专业教育学院确定COALESCE
和CASE
来对付他们和IM倾向于COALESCE
因为我的替代NULL
是不会改变,但我很想听到的话,以及为什么这将是最有效的方法。
COALESCE()
是一个字面上的简写CASE
语句,他们将执行相同。
然而,随着podiluska提到, ISNULL()
偶尔可以比更快的CASE
语句,但这些功能是不太可能的瓶颈你的程序很可能是微乎其微的增加。
http://sqlblog.com/blogs/adam_machanic/archive/2006/07/12/performance-isnull-vs-coalesce.aspx
在某些情况下, ISNULL
快于CASE
或COALESCE
。 然而,如果跨平台的兼容性是一个问题, COALESCE
是ANSI标准。
我更喜欢使用COALESCE
了CASE
。 而最有趣的是代码比使用更短的CASE
。