如何在SQL查询中查找映射到相应列的列的匹配项

如何在SQL查询中查找映射到相应列的列的匹配项,sql,oracle,Sql,Oracle,我有一个问题如下 select custref, tetranumber from (select * from cdsheader h, custandaddr c where h.custref=c.cwdocid and c.addresstype = 'C' ) where tetranumber = '034096' 目标是第二列应该只有一个对应的第一列 例如:034096应始终将2600135作为第一列 我想检查034096是否有2600135以外

我有一个问题如下

select custref, tetranumber 
from
    (select * 
     from cdsheader h, custandaddr c 
     where h.custref=c.cwdocid and c.addresstype = 'C' )
where tetranumber = '034096'
目标是第二列应该只有一个对应的第一列

例如:034096应始终将2600135作为第一列

我想检查034096是否有2600135以外的值

我是一名java开发人员,建议了一种解决方案来避免数据的1到n或n到n映射,但DBOracle中已经有一个坏数据,因此我想检查是否有坏数据,以便删除数据

re:目标是第二列应该只有一个对应的第一列
您需要执行聚合函数,如MAX或MIN,以确定返回哪一行。

感谢您的响应

我已经找到了方法,现在就这样

从中选择custref、CountDistincteTranNumber 从cdsheader h、custandaddr c中选择custref、tetranumber,其中h.custref=c.cwdocid和c.addresstype='c'
按custref分组,CountDistincteTranNumber>1

——20年前,ANSI-92 SQL标准停止使用老式的逗号分隔表格列表样式——该停止使用了!而且,即使在子查询中,使用SELECT*也可能是个坏主意。首先,如果您列出的列都在一个索引中,那么可以使用该索引返回结果,而不是同时查看依赖于RDBMS的表,并且优化器是否可以从最终的SELECT子句中获得等效的信息。SQL只是结构化查询语言—许多数据库系统都使用这种语言,但不是数据库产品。。。了解您使用的数据库系统和版本将非常有帮助。。。。