子查询的疑惑

imfjl 2004-04-06 04:30:21
我需要对一个表table1的每条记录都去判断它的域field1是否满足某个条件.这种条件在table2中定义.所以,我想通过子查询实现.语句如下:
select * from table1 where exists (select 'a' from table2 where table1.field1 between table2.field4 and table2.field5);
但发现select出来的和
select * from table1 where table.field1 between 1 and 100;不一样.(table2里只有一条记录,其中field4=1,field5=100).
为什么啊?
...全文
38 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
imfjl 2004-04-06
  • 打赏
  • 举报
回复
问题已经解决,子查询是没有问题的.只是一个隐式类型转换引起的问题.
bzszp 2004-04-06
  • 打赏
  • 举报
回复
这样的话应该没有问题,
你把执行的结果贴出来看看
imfjl 2004-04-06
  • 打赏
  • 举报
回复
这个条件为真为假不是对table1的每个记录才有吗?还是它的结果先于select * from table1的执行?
jiezhi 2004-04-06
  • 打赏
  • 举报
回复
exists 后面的条件为真,就相当于没有条件了。
所以上面的语句是错误的。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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