Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Rekod Pendua dalam Pelayan SQL Menggunakan Pertanyaan T-SQL Tunggal?
Mengalih Keluar Baris Pendua dalam Pelayan SQL dengan Cekap
Bayangkan Employee
jadual yang mengandungi lajur EmployeeName
. Matlamatnya adalah untuk mengalih keluar baris pendua berdasarkan medan EmployeeName
semata-mata. Ini boleh dicapai menggunakan pertanyaan T-SQL ringkas dalam SQL Server.
Penyelesaian:
Memanfaatkan fungsi tetingkap menyediakan penyelesaian yang elegan. Pertanyaan berikut memberikan nombor baris unik (rn
) kepada setiap rekod dalam setiap kumpulan EmployeeName
, dipesan oleh empId
. Selepas itu, baris dengan rn
lebih besar daripada 1 (iaitu, pendua) dipadamkan.
<code class="language-sql">DELETE x FROM ( SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY EmployeeName ORDER BY empId) FROM Employee ) x WHERE rn > 1;</code>
Untuk pratonton baris yang dijadualkan untuk pemadaman sebelum melaksanakan pernyataan DELETE
, jalankan pertanyaan SELECT
ini:
<code class="language-sql">SELECT * FROM ( SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY EmployeeName ORDER BY empId) FROM Employee ) x WHERE rn > 1;</code>
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Pendua dalam Pelayan SQL Menggunakan Pertanyaan T-SQL Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!