2015年1月27日

T-SQL - 在無Primary Key的表格裡刪除重複資料

這幾天在寫三支程式,其中第一支程式會將A  Table的資料搬移到B Table並將A的資料刪掉,而B  Table是一個單純保存已刪除資料的Table,因此當初建立Table時並無設定PK,而這時遇到在測試程式若是程式在某處掛點,但又重複insert  B Table時就很麻煩..

需求 : 兩筆一模一樣的資料需只留下一筆



解決方式如下:
幫B Table編號一下就能解決


with temp as(
SELECT *, ROW_NUMBER() over(order by 欄位名稱) as rnk
FROM B
)

Select * from temp
where rnk IN
(SELECT Max(rnk) FROM temp GROUP BY 產品名稱)


刪除則是將上面Select語法改成Delete即可
DELETE temp
where rnk NOT IN 
(Select Max(rnk) 
From temp Group By 欄位名稱)


參考
http://www.dotblogs.com.tw/lastsecret/archive/2010/07/13/16532.aspx

沒有留言:

張貼留言

<Javascript> How to uncompressed GZIP at front-end using Javascript

It's been a while I haven't share my coding work. In this article I would like to share how to receive a Gzip file via stream, unzip...