一张表里有a ,b 两个字段,值是如下的情况,我要查询出b字段不同,a字段相同的数据,传进来的条件是b字段
a1,b1
a2,b1
a1,b2
a2,b2
我写的sql如下:select * from tab t1 where t1.a in(select t2.a from tab t2 where t2.b in ('b1','b2') group by t2.a having count(1)>1)
当传'b1','b2'这两个值的时候没有问题,但是我再传多一个'b3'进来,由于写法是用in的,得到的结果还是跟'b1','b2'查询的结果一样
怎么样才能传'b1','b2','b3'进来时,就查询不到数据了,因为表里根本都没有'b3'的数据,我要得到的是他们共同拥有的值
a1,b1
a2,b1
a1,b2
a2,b2
我写的sql如下:select * from tab t1 where t1.a in(select t2.a from tab t2 where t2.b in ('b1','b2') group by t2.a having count(1)>1)
当传'b1','b2'这两个值的时候没有问题,但是我再传多一个'b3'进来,由于写法是用in的,得到的结果还是跟'b1','b2'查询的结果一样
怎么样才能传'b1','b2','b3'进来时,就查询不到数据了,因为表里根本都没有'b3'的数据,我要得到的是他们共同拥有的值
解决方案 »
- sql loader能不能在参数里传某个字段的值
- 使用二进制的初始化参数文件(SPFILE)来移动oracle数据控制文件问题
- pl/sql中 的select问题
- 超级复杂的SQL语句;求高手
- 什么原因导致DEAD CONNECTION 不能从v$session 中被自动DROP掉
- 各位大虾,请帮忙呀,小弟快要急死了。!!!!!!!!!
- oracle9i 如何将一个表中的long raw 数据插入到另一个表中的long raw 列?
- 将Access数据库链接Oracle的问题
- 如何创建定时触发器
- 在oracle怎样统计查询select语句运行所需时间?
- ebs11.0如何在form定义一个Global变量传参数给report?
- 如何实现两个主数据库互相同步?
select * from tab t1
where t1.a in(select t2.a from tab t2 where t2.b in ('b1') group by t2.a having count(1)>1)
and t1.a in(select t2.a from tab t2 where t2.b in ('b2') group by t2.a having count(1)>1)
and t1.a in(select t2.a from tab t2 where t2.b in ('b3') group by t2.a having count(1)>1)
(select * from tab t1 ,tab t2 where t1.a<>t2.a and t1.b=t2.b )where b=?
表的数据如下:
select * from a
a1 b2
a1 b1
a2 b3
a2 b1
a3 b2
---------------------------------------------------------------
查询出b字段不同,a字段相同的数据
select *
from a
where a.s1 in (select s1 from a group by s1 having count(s2) > 1)
结果:
1 a1 b2
2 a1 b1
3 a2 b3
4 a2 b1
-----------------------------------------------------------------
查询出b字段不同,a字段相同的数据,传进来的条件是b字段
select *
from a
where a.s1 in (select s1 from a group by s1 having count(s2) > 1)
and s2 = 'b2'结果:
1 a1 b2