Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मैं डुप्लिकेट पंक्तियों को कैसे हटा सकता हूं?

कोई नल नहीं मानते हुए, आप GROUP BY अद्वितीय कॉलम, और SELECT MIN (or MAX) RowId रखने के लिए पंक्ति के रूप में। फिर, वह सब कुछ हटा दें जिसमें पंक्ति आईडी नहीं थी:

DELETE FROM MyTable
LEFT OUTER JOIN (
   SELECT MIN(RowId) as RowId, Col1, Col2, Col3 
   FROM MyTable 
   GROUP BY Col1, Col2, Col3
) as KeepRows ON
   MyTable.RowId = KeepRows.RowId
WHERE
   KeepRows.RowId IS NULL

यदि आपके पास पूर्णांक के बजाय GUID है, तो आप प्रतिस्थापित कर सकते हैं

MIN(RowId)

के साथ

CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मामला जब खंड द्वारा आदेश के लिए बयान

  2. क्या एक दृश्य एक साधारण क्वेरी से तेज है?

  3. हर पंक्ति का चयन कैसे करें जहां कॉलम मान अलग नहीं है

  4. SQL सर्वर में किसी लिंक किए गए सर्वर के विरुद्ध SERVERPROPERTY() चलाएँ

  5. सीएसवी डेटा के भीतर अल्पविराम