DELETE t
FROM 
(SELECT *,ROW_NUMBER() OVER(PARTITION BY Period
                           ,LegalEntity
                           ,ino_id
                           ,BUZEI ORDER BY Period) AS Row FROM tbl_journal 
) AS t
WHERE Row>1

解决方案 »

  1.   

    SQL2005以上版本,可用以上通用方法
      

  2.   

    如果数据比较多,总要知道留哪一条吧
    现假设留主键最小的那一条DELETE T
    FROM(
    SELECT *
    ,ROW_NUMBER()OVER(PARTITION BY Period,LegalEntity,ino_id,BUZEI ORDER BY 主键)RN
    FROM tbl_journal
    )T WHERE RN>1主键换成你的主键