[英]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.