我有5个字段带回了值和NULL的混合。出于报告目的,我需要将任何潜在的NULL替换为一个值。我正在查询的数据库是通过SSIS包每晚更新的。
显然,我将需要更改.dtsx文件,以通过添加一些SQL来阻止NULL每天通过。
我的问题是:
就性能而言,处理这些NULL的最有效方法是什么。到目前为止,我已经确定COALESCE
并CASE
与之打交道,并且倾向于这样做,COALESCE
因为我的替代方案NULL
不会改变,但是我很想知道这是否以及为什么会是最有效的方法。
COALESCE()
是CASE
语句的简写形式,它们的性能相同。
但是,正如podiluska所提到的,ISNULL()
它有时CASE
可能比一条语句快,但是由于这些功能不太可能使您的程序成为瓶颈,因此增加的幅度可能很小。
在这里阅读更多有关性能差异的信息。