2011年7月15日 星期五

Ms Sql 重複資料查詢與刪除

--檢查重複排序
WITH Get_Last_cmd
AS
(
  SELECT
    *,GroupID = ROW_NUMBER() OVER (PARTITION BY dbowner,custid,facisno ORDER BY cmopendate desc)
  FROM
    dbo.table
)
Select * FROM Get_Last_cmd order by facisno,cmopendate desc;

 --刪除重復
 WITH Get_Last_cmd
AS
(
  SELECT
    GroupID = ROW_NUMBER() OVER (PARTITION BY dbowner,custid,facisno ORDER BY cmopendate desc)
  FROM
    dbo.table
)
delete * FROM Get_Last_cmd WHERE GroupID > 1;