Kenyataan KES dalam klausa SQL WHERE
Dalam SQL, pernyataan CASE menyediakan mekanisme penilaian bersyarat. Ia membolehkan anda menentukan syarat yang berbeza dan mengembalikan nilai berangka yang sepadan berdasarkan syarat ini. Ini amat berguna dalam klausa WHERE untuk menapis data berdasarkan keadaan yang berbeza.
Anggapkan senario berikut: Anda perlu mendapatkan semula data daripada paparan bernama "viewWhatever" berdasarkan nilai parameter jenis lokasi "@locationType" dan parameter ID lokasi "@locationID". Jenis lokasi boleh menjadi 'lokasi', 'kawasan' atau 'bahagian'.
Gunakan pernyataan KES
Untuk mencapai fungsi ini menggunakan pernyataan CASE dalam klausa WHERE, anda boleh membina pertanyaan seperti berikut:
<code class="language-sql">SELECT column1, column2 FROM viewWhatever WHERE @locationID = CASE @locationType WHEN 'location' THEN account_location WHEN 'area' THEN xxx_location_area WHEN 'division' THEN xxx_location_division END</code>
Penerangan
Elakkan pengendali sama dengan berlebihan
Sila ambil perhatian bahawa dalam contoh yang disediakan, bahagian "=@locationID" di hujung setiap klausa WHEN tidak betul. Pernyataan CASE sendiri memberikan lajur yang betul untuk dibandingkan dengan "@locationID".
SQL Dinamik
Jika jenis lokasi dan nama lajur anda tidak diketahui semasa anda menulis pertanyaan, anda boleh membina pernyataan CASE dengan cepat menggunakan prosedur tersimpan atau SQL dinamik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pernyataan KES untuk Menapis Data Secara Dinamik dalam Klausa SQL WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!