Rumah >pangkalan data >tutorial mysql >Bagaimanakah EXISTS dan INTERSECT Boleh Mengendalikan Perbandingan Nilai NULL dengan Cekap dalam Pertanyaan Pelayan SQL?
Membandingkan Nilai NULL dalam SQL Server
Dalam SQL Server, pengendalian nilai nullable dalam pertanyaan boleh menjadi mencabar. Pertimbangkan senario di mana pembolehubah yang digunakan dalam klausa WHERE boleh menjadi NULL, yang membawa kepada keperluan untuk pertanyaan bersyarat menggunakan pernyataan IF ELSE. Walau bagaimanapun, adalah mungkin untuk mengendalikan situasi sedemikian dengan elegan dalam satu pertanyaan.
Menggunakan EXISTS untuk NULL Comparisons
Daripada menggunakan pendekatan bersyarat, anda boleh menggunakan EXISTS pengendali untuk membandingkan nilai NULL dengan berkesan:
SELECT * FROM Customers WHERE EXISTS ( SELECT OrderID INTERSECT SELECT @OrderID );
Pertanyaan ini berfungsi dengan cekap langkah berikut:
Jadi, jika @OrderID ialah NULL, pertanyaan akan mengembalikan baris dengan OrderID juga NULL, tanpa mengira jenis data. Jika @OrderID mempunyai nilai bukan NULL, pertanyaan akan mengembalikan baris di mana OrderID sepadan dengan nilai tersebut.
Sumber Tambahan
Untuk mendapatkan maklumat lanjut tentang perbandingan kesamaan dalam rancangan pertanyaan , rujuk artikel "Rancangan Pertanyaan Tidak Berdokumen: Perbandingan Kesaksamaan."
Atas ialah kandungan terperinci Bagaimanakah EXISTS dan INTERSECT Boleh Mengendalikan Perbandingan Nilai NULL dengan Cekap dalam Pertanyaan Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!