0

我有一个包含三个字段的主键表:

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 
           )

谢谢你。

4

1 回答 1

1

您可以尝试通过连接IDproand为您的表创建一个伪造的唯一键IDPri

DELETE FROM mytable 
WHERE IsComp IS null AND 
      IDpro || ';' || IDPri IN (
         SELECT IDpro || ';' || IDPri 
         FROM mytable
         GROUP BY IDpro , IDPri 
         HAVING COUNT(*) > 1
      )
于 2013-07-25T13:51:13.913 回答