繁体   English   中英

WHEN 条件 postgresql 评估结果

[英]WHEN condition postgresql evaluate the result

我不明白为什么 when 条件会评估结果是否为 FALSE。

例如:

WHERE
    CASE
        WHEN false THEN lower(pmo.id_province) <> lower(dp.id_province)
        WHEN true THEN pmo.id_province <> dp.id_province 
    END;

这里postgresqll的消息:

错误:function lower(integer) does not exist LINE 8: WHEN false THEN lower(pmo.id_province) <> lower(dp.id_prov... ^ HINT: No function matches the given name and argument types. 你可能需要添加显式类型转换。SQL state:42883 字符:199

我知道较低的 function 接受文本 arguments,但我插入了 when 语句来避免这个问题,但不起作用。 如果条件为假,为什么 WHEN 会绕过条件?

它没有执行,但在执行前失败,当它试图解析正在引用的函数时。 这发生在解析时,而不是在执行期间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM