Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当两列中的值不';不匹配_Sql_Oracle - Fatal编程技术网

Sql 当两列中的值不';不匹配

Sql 当两列中的值不';不匹配,sql,oracle,Sql,Oracle,表1: onode_c, dnode_c, dist1 表2: onode_c, dnode_c, dist2 我需要一个返回的查询 onode_c, dnode_c, dist1, dist2 对于dist1和dist2在表1和表2中不匹配的记录 select a.onode_c, a.dnode_c, trunc(a.dist1), trunc(b.dist2) from table1 a, table2 b where a.onode_c = b.onode_c and a.dno

表1:

onode_c, dnode_c, dist1
表2:

onode_c, dnode_c, dist2
我需要一个返回的查询

onode_c, dnode_c, dist1, dist2
对于
dist1
dist2
在表1和表2中不匹配的记录

select  a.onode_c, a.dnode_c, trunc(a.dist1), trunc(b.dist2)
from table1 a, table2 b
where a.onode_c = b.onode_c and a.dnode_c = b.dnode_c and trunc(a.dist1) != trunc(b.dist2);
上述查询多次返回相同的记录。

请尝试以下语句:

select a.onode_c, a.dnode_c, trunc(a.dist), trunc(b.dist2) from table1 a
left join table2 b on a.onode_c = b.onode_c and a.dnode_c = b.dnode_c
where trunc(a.dist1) != trunc(b.dist2);

尝试使用
选择不同的
可能

尝试以下方法:

select  DISTINCT a.onode_c, a.dnode_c, trunc(a.dist1), trunc(b.dist2)
from table1 a, table2 b
where a.onode_c = b.onode_c and a.dnode_c = b.dnode_c and trunc(a.dist1) != trunc(b.dist2);

trunc(b.f1)
??我在表2中没有看到列
f1
。另外,
dist
列…对不起,'trunc(a.dist),trunc(b.f1)'应该是trunc(a.dist1),trunc(b.dist2)-在修改原始查询以使其简单化时错过了此选项。
(onode_c,dnode_c)
是一个或两个表上的唯一键还是主键?如果只有一个,哪一个?我假设这对
(onode\u c,dnode\u c)
在至少一个表上不是唯一的,因为您要报告多行。如果一个表中的给定值
(onode_c,dnode_c)
,另一个表中有多个值,其中
trunc(a.dist)!=trunc(b.dist2)
对于某些行为true,但对于其他行为false。是否应该包含节点对的该值?所发布的表没有
f1
dist
columns@IswantoSan那么OP怎么说上面的查询多次返回相同的记录呢???我只是根据OP的评论编辑了这个问题…你也应该修改你的答案…)@Jeba:也许你可以:)