问题描述
我有两个查询是 postgresql:
1. SELECT CASE WHEN (1=1) THEN NULL ELSE cast(1/0 as text) END;
2. SELECT CASE WHEN (EXISTS (SELECT 10)) THEN NULL ELSE cast(1/0 as text) END;
您可能已经注意到两个查询中第一个条件的结果为真,但第一个查询的结果是 null
,第二个查询的结果是 ERROR: division by zero
这里发生了什么?
在评估发生的顺序上是否有任何优化?如果是,是否有任何原因将其关闭?
当条件结果为真时,是否有任何原因在条件块中有一个复杂的查询,而不会在 else 块中触发运行时错误?
Postgresql 版本:13.1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)