在一個(gè)表中有重復(fù)的記錄,重復(fù)的次數(shù)可能是一條或多條,如何在重復(fù)記錄中只留下一條,刪除其他多余的記錄,使數(shù)據(jù)集的每條記錄都是的?本文運(yùn)用了一種比較笨拙不過(guò)邏輯比較清楚的方法,希望大家能提供更好的方法!
1列出表中的重復(fù)記錄
(sameoda)
SELECT [2].[地級(jí)市], Count(*) AS 記錄數(shù)FROM 2GROUP BY [2].[地級(jí)市]HAVING count(*)>1ORDER BY [地級(jí)市];
地級(jí)市記錄數(shù)100000951094210000095111621000009511272100000951138210000095114921000009511502
2以下是除去相同記錄的過(guò)程
1)列出表中的所有重復(fù)記錄
(表2中重復(fù)記錄)
SELECT 2.*FROM 2 RIGHT JOIN sameoda ON [2].[地級(jí)市]=[sameoda].[地級(jí)市];
ID編號(hào)地級(jí)市保險(xiǎn)貨物名稱數(shù)量及包裝單位聲明價(jià)值(元)運(yùn)輸自運(yùn)輸?shù)?4691466100000951094苯扎貝特片、水飛薊賓膠囊3箱18600天津佳木斯53511077100000951094苯扎貝特片、水飛薊賓膠囊3箱18600天津佳木斯53501076100000951116水飛薊賓膠囊5箱29000天津?yàn)豸斈君R74681465100000951116水飛薊賓膠囊5箱29000天津?yàn)豸斈君R53531079100000951127氟他胺片4箱66800天津哈爾濱74711468100000951127氟他胺片4箱66800天津哈爾濱
2)從重復(fù)記錄中找到的一條記錄
minbihanhao
SELECT 2.*FROM 2 LEFT JOIN 表2中重復(fù)記錄 ON [2].[ID]=[表2中重復(fù)記錄](méi).[ID]WHERE].[id] Is Null;
地級(jí)市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355
3)顯示記錄的全部信息
allsame1
SELECT 2.*FROM 2 LEFT JOIN minbihanhao ON ([2].[地級(jí)市]=[minbihanhao].[地級(jí)市]) AND ([2].[id]=[minbihanhao].[id])WHERE [minbihanhao].[地級(jí)市] Is Not NullORDER BY [2].[id];
4)在原表中除去所有相同的記錄
dropsame2
SELECT 2.*FROM 2 LEFT JOIN 表2中重復(fù)記錄 ON [2].[ID]=[表2中重復(fù)記錄](méi).[ID]WHERE [表2中重復(fù)記錄](méi).[id] Is Null;
5)表2除去重復(fù)記錄=在原表中除去所有相同的記錄+顯示記錄的全部信息
表2除去重復(fù)記錄
SELECT *FROM dropsame2 UNION select * fromallsame1;
1列出表中的重復(fù)記錄
(sameoda)
SELECT [2].[地級(jí)市], Count(*) AS 記錄數(shù)FROM 2GROUP BY [2].[地級(jí)市]HAVING count(*)>1ORDER BY [地級(jí)市];
地級(jí)市記錄數(shù)100000951094210000095111621000009511272100000951138210000095114921000009511502
2以下是除去相同記錄的過(guò)程
1)列出表中的所有重復(fù)記錄
(表2中重復(fù)記錄)
SELECT 2.*FROM 2 RIGHT JOIN sameoda ON [2].[地級(jí)市]=[sameoda].[地級(jí)市];
ID編號(hào)地級(jí)市保險(xiǎn)貨物名稱數(shù)量及包裝單位聲明價(jià)值(元)運(yùn)輸自運(yùn)輸?shù)?4691466100000951094苯扎貝特片、水飛薊賓膠囊3箱18600天津佳木斯53511077100000951094苯扎貝特片、水飛薊賓膠囊3箱18600天津佳木斯53501076100000951116水飛薊賓膠囊5箱29000天津?yàn)豸斈君R74681465100000951116水飛薊賓膠囊5箱29000天津?yàn)豸斈君R53531079100000951127氟他胺片4箱66800天津哈爾濱74711468100000951127氟他胺片4箱66800天津哈爾濱
2)從重復(fù)記錄中找到的一條記錄
minbihanhao
SELECT 2.*FROM 2 LEFT JOIN 表2中重復(fù)記錄 ON [2].[ID]=[表2中重復(fù)記錄](méi).[ID]WHERE].[id] Is Null;
地級(jí)市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355
3)顯示記錄的全部信息
allsame1
SELECT 2.*FROM 2 LEFT JOIN minbihanhao ON ([2].[地級(jí)市]=[minbihanhao].[地級(jí)市]) AND ([2].[id]=[minbihanhao].[id])WHERE [minbihanhao].[地級(jí)市] Is Not NullORDER BY [2].[id];
4)在原表中除去所有相同的記錄
dropsame2
SELECT 2.*FROM 2 LEFT JOIN 表2中重復(fù)記錄 ON [2].[ID]=[表2中重復(fù)記錄](méi).[ID]WHERE [表2中重復(fù)記錄](méi).[id] Is Null;
5)表2除去重復(fù)記錄=在原表中除去所有相同的記錄+顯示記錄的全部信息
表2除去重復(fù)記錄
SELECT *FROM dropsame2 UNION select * fromallsame1;