2017-07-19 137 views
1

大家下午好!SQL刪除某列中的重複項

有一個關於刪除一列中的重複項並刪除整行的問題。我將在Excel中的屏幕截圖中提供一個示例,以便不提供專有信息。

我期待去除黃色例如行的一個突出但不希望將其限制在一個Dr.Mike或例如一個健康夥伴診所。相對較新,所以任何幫助將不勝感激。

謝謝

+0

是否要刪除所有匹配的行或全部一行? 'delete'將會刪除符合'where'子句中給出的條件的所有行。 –

+0

對不起,我也想注意可以在同一地址和診所有多個提供者 –

+1

只想刪除地址上重複的那一行 –

回答

-1

我用下面的腳本來刪除重複。

SELECT Prov, Clinic,Address, count(*) 
    FROM SomeTable 
    group by Prov, Clinic,Address 
    having count(*)>1 



    SELECT Prov, Clinic,Address, countrows = count(*) 
INTO [holdkey] 
FROM SomeTable 
GROUP BY Prov, Clinic,Address 
HAVING count(*) > 1 



    SELECT DISTINCT sometable.* 
INTO holdingtable 
FROM sometable, holdkey 
WHERE sometable.Prov = holdkey.Prov 
AND sometable.Clinic = holdkey.Clinic 
AND sometable.Address = holdkey.Address 

SELECT Prov, Clinic,Address, count(*) 
    FROM holdingtable 
    group by Prov, Clinic,Address 
    having count(*)>1 

DELETE sometable 
FROM sometable, holdkey 
WHERE sometable.Prov = holdkey.Prov 
AND sometable.Clinic = holdkey.Clinic 
AND sometable.Address = holdkey.Address 

INSERT sometable SELECT * FROM holdingtable 
+0

OP表示他們不能刪除數據,只是修改它的查看方式。無論如何,對於這樣一個簡單的操作來說,這是非常過分的(假設它很簡單,很難準確地說出OP需要什麼)。 –

+0

道歉。在查看評論中的額外信息之前,我已經起草了答案。 –

1

你可以這樣做:

select distinct prov, clinic, address 
from t; 
+0

謝謝大家的幫助! –

+1

如果這回答了您的問題,請將其標記爲已接受。否則,請編輯您的問題以明確您想要的內容,因爲目前還不完全清楚。 –