SQL Server'da tekrar eden satırları silmek

Tablonuzda belirli alanlarda tekrar eden veriler olmasını istemiyorsanız aşağıdaki sorguyla bu satırları tespit edebilir ve silebilirsiniz.

Daha sonra sorun yaşamamak adına yorum satırı olarak bıraktığım delete alanını sonuç kümesini gördükten sonra çalıştırınız

Kodda gerekli yerlere açıklamaları yazdım. 

WITH cte AS (
    SELECT  -- degerleri görmek için alanları belirtiyoruz, eşitlik durumu için partition bölümü kullanılmakta
        alan1, 
        alan2, 
        alan3, 
        alan4, 
        ROW_NUMBER() OVER (
            PARTITION BY -- belirtilen alanlar aynı ise diyoruz, tek bir alan da belirtebilirsiniz
        alan1, 
        alan2, 
        alan3
            ORDER BY 
        alan1, 
        alan2, 
        alan3
        ) row_num
     FROM 
        [dbo].[table_name] 
)
select * from cte --silmek için bu satırı 'delete FROM cte' olarak değiştiebilirsiniz
WHERE row_num > 1

 

 

Add comment

Loading