oracle IN函数的问题,大佬们帮下忙,困扰好久

beandz 2018-10-26 05:21:36


上图是子查询的,单独执行可以查询到结果集,如下图



sql为

那么问题来了

IN的后面子查询结果集有29条数据,总查询为结果集就是空的

但是从子查询结果集里面任何一条 用=号来执行都有数据


第一次发帖,不知道有没有描述清楚,大佬们帮忙解释下

...全文
307 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fighting_1982 2018-11-14
  • 打赏
  • 举报
回复
不要相信看到的东西,单条查没问题,说明attendance_ilink表中确实有wangxiang1这些数据。但是子查询中你看到的却未必和你输入的wangxiang1是一致的。怀疑子查询中的数据编码不一致,但是拷贝出来会发生变化。直接查询子查询的数据里是否有wangxiang1看看,应该会没有。
beandz 2018-10-30
  • 打赏
  • 举报
回复
引用 1 楼 CEOCAO 的回复:
SQL的可阅读性很不好,
子查询有数据,单一的查询也有数据,按理来说,完整的两重查询也应该有数据。
所以我直接怀疑: 你的单独子查询语句和最终运行的子查询语句不一样


图中有显示执行的sql,子查询确实是一样的,我的疑问跟你想的一样,为什么单独都可以,结合其来就不行了呢
BrucesLong 2018-10-30
  • 打赏
  • 举报
回复
你这得发数据库-oracle版块去
BrucesLong 2018-10-30
  • 打赏
  • 举报
回复
是不是查询字段和结果集字符类型不一致的原因,转换同一类型试试?
yuppy 2018-10-27
  • 打赏
  • 举报
回复
使用exists 另外in 的时候注意是否有空值,记得nvl处理下。
咸哼酒家 2018-10-26
  • 打赏
  • 举报
回复
SQL的可阅读性很不好,
子查询有数据,单一的查询也有数据,按理来说,完整的两重查询也应该有数据。
所以我直接怀疑: 你的单独子查询语句和最终运行的子查询语句不一样

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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