Menggunakan Klausa WHERE untuk Mengoptimumkan Kemas Kini Penyata CASE dalam SQL Server 2005
Dalam SQL Server 2005, pernyataan CASE boleh digunakan untuk mengemas kini rekod berdasarkan syarat yang ditetapkan. Semasa menggunakan klausa ELSE boleh mengendalikan baris yang tidak terjejas, ia boleh mengakibatkan imbasan yang tidak perlu bagi keseluruhan jadual. Ini boleh ditangani dengan menggunakan klausa WHERE.
Pertimbangkan pernyataan berikut:
UPDATE dbo.TestStudents SET LASTNAME = ( CASE WHEN (LASTNAME = 'AAA') THEN 'BBB' WHEN (LASTNAME = 'CCC') THEN 'DDD' WHEN (LASTNAME = 'EEE') THEN 'FFF' ELSE (LASTNAME) END )
Pernyataan ini akan mengemas kini rekod dalam jadual 'dbo.TestStudents', menukar nilai 'LASTNAME' sebagai mengikut syarat yang ditetapkan. Walau bagaimanapun, klausa ELSE akan menilai setiap rekod dalam jadual, walaupun yang tidak terjejas oleh syarat.
Untuk mengoptimumkan pernyataan ini, klausa WHERE boleh digabungkan untuk menapis rekod yang perlu dikemas kini:
UPDATE dbo.TestStudents SET LASTNAME = CASE WHEN LASTNAME = 'AAA' THEN 'BBB' WHEN LASTNAME = 'CCC' THEN 'DDD' WHEN LASTNAME = 'EEE' THEN 'FFF' ELSE LASTNAME END WHERE LASTNAME IN ('AAA', 'CCC', 'EEE')
Dengan menambahkan klausa WHERE, pernyataan hanya menilai rekod dengan nilai 'NAMA TERAKHIR' ialah 'AAA', 'CCC' atau 'EEE'. Ini meningkatkan prestasi dan mengelakkan imbasan yang tidak perlu bagi baris yang tidak terjejas. Oleh itu, memasukkan klausa WHERE ialah teknik yang disyorkan untuk mengoptimumkan kemas kini kenyataan CASE dalam SQL Server 2005.
Atas ialah kandungan terperinci Bagaimanakah Klausa WHERE Boleh Mengoptimumkan Kemas Kini Penyata CASE dalam SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!