select * from tab where b in (select b from tab where a='0003')
解决方案 »
- ORACLE数据库中表的序列下一个值比最大值小,这种情况下会提示主键重复,请问为什么会出现这种情况?
- oracle 运行一段时间后,进程终止,需要重新启动才可以
- 为什么在Oracle数据库中建立的用户在方案中不显示??
- 急求一oracle函数!源码
- 统计报表的时间和数据锁定时间
- 如何用sql取到3个月的数据
- 一个简单的问题:在OMS下如何建表
- 初学者的问题,ORACLE的主流开发工具是什么?
- 我提过的问题怎么没人回答呀,高手们快看看呀,就是我想在每月的25号自动调用一个存储过程,怎么解决?
- 10W级别数据校验,想用函数去执行校验并且返回一条自定义的记录
- 入门问题,回答得都有分,(回答得多的话我会再给帖子加分^_^)
- 急,求教!
select
a.a,a.b
from
tab_name a,
(select distinct b from tab_name where a='0003') b
where
a.b=b.b;
select b.m1,b.m2
from table a, table b
where a.m2 = b.m2 and a.m1='003'
按照东子的招,两个相似的表进行连接,a表的每条记录将与b表的每条记录进行连接,将会多出很多记录出来。以楼主的数据为例,前两条记录也满足a.m2 = b.m2 and a.m1='003'的条件。
select * from tab where b =(select b from tab where a='0003');
你的方法是不对的.换成=号以后,如果select b from tab where a='0003'多行就报错了.所以就in是正确的.