Mengoptimumkan Perbandingan NULL dalam Pelayan SQL
Apabila berurusan dengan pembolehubah nullable dalam pertanyaan SQL Server, adalah penting untuk mengendalikan perbandingan dengan cekap. Katakan anda mempunyai pembolehubah @OrderID yang mungkin NULL. Untuk menanyakan data berdasarkan nilai pembolehubah, anda boleh menggunakan penyataan IF ELSE untuk menyemak NULL. Walau bagaimanapun, terdapat cara yang lebih ringkas untuk melakukan perbandingan sedemikian dalam satu pertanyaan.
Pendekatan yang disyorkan ialah menggunakan operator EXISTS dengan operator set INTERSECT. Coretan kod berikut menunjukkan perkara ini:
SELECT * FROM Customers WHERE EXISTS (SELECT OrderID INTERSECT SELECT @OrderID);
Pertanyaan ini akan menyemak dengan cekap sama ada nilai @OrderID wujud dalam lajur OrderID pada jadual Pelanggan. Jika @OrderID ialah NULL, ia akan mengembalikan baris di mana OrderID juga adalah NULL. Sebaliknya, jika @OrderID mempunyai nilai bukan NULL, ia akan mengembalikan baris dengan OrderID bersamaan dengan @OrderID.
Pendekatan ini mematuhi prinsip "Pelan Pertanyaan Tidak Berdokumen: Perbandingan Kesamaan", yang menunjukkan bahawa rancangan yang dioptimumkan dijana apabila membandingkan pembolehubah dengan dirinya sendiri menggunakan INTERSECT. Dengan menggunakan teknik ini, anda boleh menyelaraskan pertanyaan anda dan meningkatkan prestasi apabila berurusan dengan pembolehubah boleh null.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Pembolehubah Boleh Null dengan Cekap dalam Pertanyaan SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!