我正在编写一个 SQL 查询,我的目标是根据列名查找重复值:
SELECT a.PROJECTNAME
, a.OBJECTTYPE
, a.OBJECTID1
, a.OBJECTVALUE1
, a.OBJECTID2
, a.OBJECTVALUE2
, a.OBJECTID3
, a.OBJECTVALUE3
, a.OBJECTID4
, a.OBJECTVALUE4
FROM PSPROJECTITEM a
WHERE a.projectname = 'AZ_HCM_745'
AND 1 < (
SELECT COUNT(*)
FROM PSPROJECTITEM c
WHERE a.objecttype = c.objecttype
AND a.objectid1 =c.objectid1
AND a.objectvalue1 = c.objectvalue1
AND a.objectid2 = c.objectid2
AND a.objectvalue2 = c.objectvalue2
AND a.objectid3 = c.objectid3
AND a.objectvalue3 = c.objectvalue3
AND a.objectid4 = c.objectid4
AND a.objectvalue4 = c.objectvalue4)
ORDER BY a.projectname
我的目的是找到那些重复的值a.projectname
,我的意思是,输出应该显示重复的值AZ_HCM_745
,意味着它应该具有相同的字段objecttype
,objectid
甚至对象的计数。
我正在寻找这样的输出:
PROJECTNAME OBJECTTYPE OBJECTID1 OBJECTVALUE1 OBJECTID2 OBJECTVALUE2 OBJECTID3 OBJECTVALUE3 OBJECTID4 OBJECTVALUE4
这些是我从查询中选择的字段名称。
现在我正在传递 a.projectname = 'AZ_HCM_745'。
我的目标是找到与 AZ_HCM_745 和具有这些值的项目名称重复的数据,例如:
AZ_HCM_745 0 1 AUDIT_AZ_ADP11P 0 0 0
是原始值。
重复值是:
AZ_HCM_745_BKP 0 1 AUDIT_AZ_ADP11P 0 0 0
请注意,projectname 可以变化,_bkp 或 _a,我的目标是找到具有 objecttype 重复值的 projectnames,objectid1,我想选择这些值。
此外,查询必须只获取参数中传递的项目名称的重复值,而不是项目名称,这意味着不能显示原始值,只显示重复值
使用的数据库是Oracle。