求助!!同样的语句为啥结果不一样???

jmsl7607 2019-01-11 09:52:57
oracle库.
1.查询 select * from scott.emp where 5 - (select count(1) from scott.dept where 1= 0 ) > 0 无结果
2。查询 select * from scott.emp where 5 - 0> 0 有结果
3 .查询 select * from scott.emp where (select count(1) from scott.dept where 1= 0 ) = 0 有结果

同样的1语句在其他oracle数据库执行没问题,有结果。

跪求大神指教,不胜感谢。
...全文
493 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
imcmuc 2019-02-12
  • 打赏
  • 举报
回复

前面贴的图片上传失败了~~~
imcmuc 2019-02-12
  • 打赏
  • 举报
回复
imcmuc 2019-02-12
  • 打赏
  • 举报
回复




1 - filter(TO_NUMBER(TO_CHAR(5- (SELECT COUNT(*) FROM "SYS"."DUAL" "DUAL" WHERE NULL IS NOT NULL)))>0)
猜测(select count(1) from DUAL where 1 = 0)被TO_CHAR为NULL,其他部分也会被强制TO_CHAR(),算数运算变成了逻辑运算,具体为什么是这样就要有请大佬了
jianshiku 2019-01-20
  • 打赏
  • 举报
回复
纠结这个干嘛,要不就多加点括号

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧