如何查询仅存在ID 1、缺失ID 2的PARTY_ID及对应ID数据
查询仅存在指定ID类型的PARTY_ID数据
假设ID1对应的ID_TYPE_CODE为1231,ID2对应的为1446,以下是几种可行的SQL解决方案:
方法1:NOT EXISTS子查询
直接检查当前PARTY_ID是否不存在ID2类型的记录,同时筛选出ID1的数据:
SELECT t1.PARTY_ID, t1.ID FROM your_table t1 WHERE t1.ID_TYPE_CODE = '1231' -- 替换为ID1的类型码 AND NOT EXISTS ( SELECT 1 FROM your_table t2 WHERE t2.PARTY_ID = t1.PARTY_ID AND t2.ID_TYPE_CODE = '1446' -- 替换为ID2的类型码 );
方法2:LEFT JOIN筛选缺失项
通过左连接ID2类型的记录,筛选出连接后无匹配的ID1记录:
SELECT t1.PARTY_ID, t1.ID FROM your_table t1 LEFT JOIN your_table t2 ON t1.PARTY_ID = t2.PARTY_ID AND t2.ID_TYPE_CODE = '1446' WHERE t1.ID_TYPE_CODE = '1231' AND t2.PARTY_ID IS NULL;
方法3:GROUP BY统计类型数量
按PARTY_ID分组,只保留仅包含ID1类型的分组:
SELECT PARTY_ID, MAX(CASE WHEN ID_TYPE_CODE = '1231' THEN ID END) AS ID1 FROM your_table GROUP BY PARTY_ID HAVING COUNT(DISTINCT ID_TYPE_CODE) = 1 AND MAX(ID_TYPE_CODE) = '1231';
注意事项
- 替换
your_table为实际表名 - 根据业务实际替换
1231和1446为对应的ID_TYPE_CODE - 若
ID_TYPE_CODE是数值类型,去掉语句中的单引号即可
内容的提问来源于stack exchange,提问作者Omkar Narvekar
相关产品推荐
相关产品推荐

