12

我有 5 个字段返回值和 NULLS 的混合。出于报告目的,我需要用一个值替换任何潜在的 NULLS。我正在查询的数据库每晚通过 SSIS 包更新。

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

我的问题是:

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

4

3 回答 3

18

COALESCE()字面上是CASE语句的简写,它们的执行方式相同。

但是,正如 podiluska 所提到的,ISNULL()有时可能比CASE语句更快,但它可能是微不足道的增加,因为这些功能不太可能成为您的程序的瓶颈。

在此处阅读有关性能差异的更多信息。

于 2012-11-01T14:44:07.200 回答
7

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

于 2012-11-01T09:55:24.177 回答
5

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

于 2012-11-01T09:45:27.613 回答