Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam T-SQL Berdasarkan Lajur Utama?
Padamkan baris pendua dalam T-SQL dengan cekap berdasarkan lajur kunci utama
Soalan:
Disebabkan ralat semasa pembuatan data, jadual mengandungi sejumlah besar baris pendua. Matlamatnya adalah untuk menghapuskan baris berlebihan sambil mengekalkan satu baris untuk setiap gabungan unik lajur kunci utama. Walau bagaimanapun, jadual mengandungi beberapa lajur yang tidak berkaitan dengan soalan dan mempunyai data yang sedikit berbeza dan mesti diabaikan.
Penyelesaian:
Untuk SQL Server 2005 dan ke atas, anda boleh menggunakan fungsi OVER() dan ungkapan jadual biasa (CTE) untuk mengalih keluar baris pendua dengan cekap.
Penyataan CTE dan DELETE:
<code class="language-sql">WITH cte AS ( SELECT [foo], [bar], row_number() OVER(PARTITION BY foo, bar ORDER BY baz) AS [rn] FROM TABLE ) DELETE cte WHERE [rn] > 1</code>
Arahan:
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam T-SQL Berdasarkan Lajur Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!