查看完整版本: 如何用T SQL語法刪除重複的資料
頁: [1]

koala888 發表於 2018-1-29 03:00 PM

如何用T SQL語法刪除重複的資料

我想要用T SQL語法刪除重複的資料,但是當然每一個最後保留一筆。現在有廠商A,B,C,三家資料都重複輸入了,有一樣的資料出現,我想要最後廠商A,B,C最後都各保留一筆資料,其他多餘的刪去,請問要怎麼做?謝謝<div></div>

w12463 發表於 2018-2-2 07:22 PM

1.懶人就用GROUP BY後寫到另一個TABLE
2.作排序 比如重複的3筆就分別獲得序號 1 2 3 然後留下最小
3.給其他人補充

darkforce2 發表於 2018-2-16 05:45 PM

加 UNIQUE 索引並搭配 IGNORE,系統會刪除重複的資料

ALTER IGNORE TABLE table_name
ADD UNIQUE INDEX idx_name (column_a, column_b);

linshangru 發表於 2018-7-8 10:41 AM

您好

我提供兩個方向

●事前防範:防止重複新增至資料表中
一、設定主索引鍵(選擇您不想重複的複數欄位)
二、建立唯一索引鍵(方法同上)

●事後防範:將資料表中已有重複的資料去除並保留最後的數據
一、建立排程,定時執行語法(語法上有很多方式可以達成)
例如:
DELETE FROM [資料表] WHERE NOT IN (
SELECT FROM (
SELECT MAX([新增時間]) AS [新增時間], [廠商] FROM [資料表] GROUP BY [廠商]) AS A
INNER JOIN [資料表] AS B
ON A.[新增時間] = B.[新增時間] AND A.[廠商] = B.[廠商])
二、建立觸發程序,於新增時檢查資料表內是否有相同數據,如有則先刪除舊有資料即可

以上,希望有解決您的問題 {:31:}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]