NVL必须评估这两个论点的目的是什么?

时间:2014-08-21 21:34:48

标签: sql oracle nvl

我在这个问题中发现 - Oracle Differences between NVL and Coalesce - NVL总是评估这两个论点。

NVL( string1, relace_with)

如果第一个参数不为空,那么评估两者的重点是什么?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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