0

我在这个问题中发现 - NVL 和 Coalesce 之间的 Oracle 差异- NVL 总是评估这两个参数。

NVL( string1, relace_with)

如果第一个参数不是 null ,那么评估两者有什么意义?

在这种情况下,我们不会总是返回第一个参数吗?

谢谢!

4

1 回答 1

1

关键可能是可能存在副作用,因此不仅两个参数的返回值很重要,而且它们的副作用也很重要。NVL 不会错过这些副作用,而 COALESCE 在某些情况下会错过第二个参数的副作用(由于短路行为)。所以 NVL 在这些情况下会非常有用(当你不想错过任何副作用时)。

于 2014-08-21T21:38:08.103 回答