我有一張有人名地址和職位的表格。 這些名字有時會重複。我必須比較,如果兩個人有相同的姓名和地址,那麼我只能保留他們的1條記錄。如何在表格中找到重複的名稱
Table: Data_Excel
Name: P_Name
Address: P_Address
City: P_city
我有一張有人名地址和職位的表格。 這些名字有時會重複。我必須比較,如果兩個人有相同的姓名和地址,那麼我只能保留他們的1條記錄。如何在表格中找到重複的名稱
Table: Data_Excel
Name: P_Name
Address: P_Address
City: P_city
要找到你能做的重複:
SELECT P_name,
P_Address,
P_city
FROM Data_Excel
GROUP BY P_Name,
P_Address,
P_city
HAVING COUNT(*) > 1;
刪除重複,你可以這樣做:
DELETE
FROM Data_Excel
WHERE rowid NOT IN (
SELECT MIN(rowid)
FROM Data_Excel
GROUP BY P_Name,
P_Address,
P_city
);
中插入人的表,你會怎麼做:
INSERT INTO Person(id,name)
SELECT (SELECT MAX(id)+1 FROM Person),P_Name
FROM Data_Excel WHERE P_Name NOT IN (SELECT name FROM Person)
感謝您的及時響應,現在如果我必須從Data_excel表中添加ID和姓名的人名錶中的名稱與檢查:名稱應該添加一次名稱不應該存在人表中已經 –
@ user408437。我添加了一個簡單的方法來做到這一點。 –
如果我不刪除重複值從Data_Excel和比插入?並且在個人表中的ID不是自動遞增的,在這種情況下,我如何獲取最後一個ID併爲每個插入增加ID的值? –
SELECT P_Name,P_Address,count(*)
FROM Data_Excel
GROUP BY P_Name,P_Address
HAVING count(*) > 1;
這會給你同樣的記錄P_Name
& P_Address
。
感謝您的及時回覆,現在如果我要插入人表ID名稱從Data_excel表檢查名稱: 名稱應加一次 名稱不應該當面表已經存在 –
你想先檢查姓名是否存在於「人」表中?如果不是,插入它們,如果是,則不做任何事情?那是你要的嗎? – SajjadHashmi
是的,如果我在Data_excel中有多個條目,我只輸入一次名稱。 –
看到這個: http://stackoverflow.com/questions/529098/removing-duplicate-rows-from-table-in-oracle – Younes
呃,什麼約兩_different_人具有相同的名稱和地址的可能性?像兄弟會中的兩個約翰史密斯一樣?或者是一對夫婦,男女皆宜的名字?這是你需要擔心的事嗎? –