gpt4 book ai didi

oracle - Oracle 10g 如何计算 boolean 表达式中的 NULL

转载 作者:行者123 更新时间:2023-12-02 01:05:32 25 4
gpt4 key购买 nike

if not (i_ReLaunch = 1 and (dt_enddate is not null))

在 Oracle 10g 中如何评估此表达式当i_ReLaunch = null的输入值且dt_enddate的值不为null时它正在进入循环。根据普通 c# 中的规则,它不应该进入循环其值如下。

If( not(假和(真))
= 如果不是(假)
=if( true)
这意味着它应该进入循环

但这并没有发生

如果我在任何地方错了,有人可以告诉我吗

最佳答案

Oracle 中带有 NULL 值的 boolean 运算返回 UNKNOWN - 不是 true 或 false。所以你有这样的东西:

If( not(UNKNOWN and (true)) = if not( UNKNOWN) =if( UNKNOWN )

在这种情况下,IF 会将 UNKNOWN 视为 false。

如果i_relaunch可以为空,那么您需要使用一些NULL处理函数(NVL,NVL2,NULLIF,COALESCE,LNNVL)来确保您有正确结果。

请参阅以下文章了解更多信息:

关于oracle - Oracle 10g 如何计算 boolean 表达式中的 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2692046/

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