有没有办法通过检查两个不同的列来从Same表中获取数据?这是一个样本,其中我有一个表A,其中有如下所示的记录
Col.a Col.b Col.c
-----------------
X Y Z
Y X Z
col.a,col.b和col.c共有3列,其中一些有如下所示的记录,其中一行的Col.a =另一行的col.b,反之亦然,两者中唯一的共同点行是col.c ...
我想得到所有表现出这种行为的不同col.c id的列表..我尝试了内部联接但没有帮助
请建议
答案 0 :(得分:0)
为什么内部联盟没有帮助?
create table t_col (a varchar2(1),b varchar2(1),c varchar2(1));
insert into t_col (a,b,c) values('x','y','z');
insert into t_col (a,b,c) values('y','x','z');
select distinct col.c
from t_col col
join t_col col2 on Col.a = Col2.b and Col.b = col2.a and Col.c = Col2.c;
或
select distinct col.c
from t_col col
where exists (select null
from t_col col2
where Col.a = Col2.b
and Col.b = col2.a
and Col.c = Col2.c);
或者我们想检查空值
select distinct col.c
from t_col col
where exists (select null
from t_col col2
where decode(Col.a,Col2.b,1,0) = 1
and decode(Col.b,col2.a,1,0) = 1
and decode(Col.c,Col2.c,1,0) = 1);
答案 1 :(得分:0)
我认为这就是你要找的东西:
SELECT DISTINCT c
FROM A
WHERE a IN (
SELECT b
FROM A
)