gpt4 book ai didi

sql - 为什么 NVL 总是评估第二个参数

转载 作者:行者123 更新时间:2023-12-02 09:43:37 26 4
gpt4 key购买 nike

有人知道为什么 Oracle 的 NVL (和 NVL2)函数总是计算第二个参数,即使第一个参数不是 NULL

简单测试:

CREATE FUNCTION nvl_test RETURN NUMBER AS
BEGIN
dbms_output.put_line('Called');
RETURN 1;
END nvl_test;

从对偶中选择 NVL(0, nvl_test)

返回0,但也打印Called

nvl_test 已被调用,即使结果被忽略,因为第一个参数不是 NULL

最佳答案

情况一直如此,因此 Oracle 必须保持这种方式以保持向后兼容。

使用COALESCE来代替以获得短路行为。

关于sql - 为什么 NVL 总是评估第二个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com