Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggunakan Pernyataan KES untuk Menapis Data Secara Dinamik dalam Klausa SQL WHERE?

Bagaimanakah Saya Boleh Menggunakan Pernyataan KES untuk Menapis Data Secara Dinamik dalam Klausa SQL WHERE?

Susan Sarandon
Lepaskan: 2025-01-10 07:15:45
asal
363 orang telah melayarinya

How Can I Use a CASE Statement to Filter Data Dynamically in a SQL WHERE Clause?

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>
Salin selepas log masuk

Penerangan

  • Pernyataan CASE diletakkan selepas kata kunci WHERE.
  • Ia menilai nilai "@locationType" sebagai pembolehubah keadaan.
  • Untuk setiap klausa WHEN, nyatakan lajur untuk menyemak kesamaan dengan "@locationID" berdasarkan jenis lokasi.
  • kata kunci TAMAT menamatkan pernyataan CASE.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan