2008-11-20 15 views

उत्तर

47

प्रयास करें कि दूसरों के लिए एक उदाहरण दिखाने के लिए:

SELECT 
    Col1, -- All of the columns you want to dedupe on 
    Col2, -- which is not neccesarily all of the columns 
    Col3, -- in the table 
    Col4, 
    Col5, 
    Col6, 
    Col7, 
    Col8, 
    Col9, 
    Col10 
FROM 
    MyTable 
GROUP BY 
    Col1, 
    Col2, 
    Col3, 
    Col4, 
    Col5, 
    Col6, 
    Col7, 
    Col8, 
    Col9, 
    Col10 
HAVING 
    COUNT(*) > 1 
+0

पकड़ा यह दोस्त .. धन्यवाद एक टन है, तो एक कृत्रिम पीके बाहर करने के लिए याद .. – Bajji

12

उपयोग कर रहा हूँ आप सभी स्तंभों पर "द्वारा समूह" का उपयोग कर सकते हैं और फिर गिनती (*)> 1

+2

इस काम करता है अच्छी तरह से, बस आप एक –

2

द्वारा के रूप में Guge कहा का पता लगाने के लिए, बस समूह।

select fieldA, fieldB, count(*) from table 
group by fieldA, fieldB 
having count(*) > 1 

आप हटाना ड्यूप्स ... छद्म चाहते हैं .... अगर आप FK की कमी है

select distinct into a temp table 
truncate original table 
select temp table back into original table 

truncate साथ आप समस्या में पड़ सकता है, तो बाधाओं को छोड़ने और सुनिश्चित करने के बारे स्मार्ट हो आप अनाथ रिकॉर्ड नहीं करते हैं।

6

का वर्णन किया गया है इस

Select * From Table 
Group By [List all fields in the Table here] 
Having Count(*) > 1 
3

प्रदान किए गए सुझावों के अलावा, मैं तो में रोकने डुप्लिकेट की प्रयास करने के लिए जाना होगा भविष्य में, उन्हें बाद में खोजने की कोशिश करने के बजाय।

यह कॉलम (या स्तंभों के समूह) पर अद्वितीय अनुक्रमणिका का उपयोग करके किया जाता है जो अद्वितीय होने चाहिए। याद रखें कि डेटाबेस में डेटा को उस विशिष्ट ऐप के अलावा अन्य स्थानों से संशोधित किया जा सकता है, जिस पर आप काम कर रहे हैं, इसलिए यह परिभाषित करना सबसे अच्छा है कि डीबी स्तर पर किसी तालिका में क्या है और इसकी अनुमति नहीं है।

संबंधित मुद्दे