कोई नल नहीं मानते हुए, आप 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)))