我有一张主键由三个字段组成的表:
IdPro, IdPri, IsComp
实际上,我遇到了一些不正常的情况,例如:
IDPro IDPri IsComp
1 1 null
1 1 0
我想删除IsComp = null
所在的行,但只有在对应的双行时才会删除。
我需要知道是否有类似的东西:
Delete from mytable where IsComp is null
AND Tuple(IDpro, IDPri) in
(SELECT Tuple(IDPro, IDPri)
FROM mytable group by IDPro, IDPri
HAVING Count(*) > 1
)
谢谢。
答案 0 :(得分:1)
您可以尝试通过连接IDpro
和IDPri
来为您的表创建假的唯一键:
DELETE FROM mytable
WHERE IsComp IS null AND
IDpro || ';' || IDPri IN (
SELECT IDpro || ';' || IDPri
FROM mytable
GROUP BY IDpro , IDPri
HAVING COUNT(*) > 1
)