Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Logik Bersyarat dalam Pernyataan SELECT SQL?
Logik Bersyarat dalam Pernyataan SELECT SQL
PenyataanSQL SELECT
tidak menyokong binaan IF...THEN
secara langsung. Walau bagaimanapun, dua alternatif berkesan wujud untuk melaksanakan logik bersyarat: pernyataan CASE
dan fungsi IIF
(tersedia dalam dialek SQL tertentu).
Menggunakan Penyata KES
Pernyataan CASE
mencerminkan kefungsian IF...THEN
dalam bahasa pengaturcaraan lain. Ia menilai keadaan secara berurutan dan mengembalikan nilai berdasarkan syarat pertama yang dipenuhi.
Sintaks:
<code class="language-sql">SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END AS new_column_name, other_columns FROM your_table;</code>
Contoh:
<code class="language-sql">SELECT CASE WHEN IsActive = 'Yes' THEN 'Active' WHEN IsActive = 'No' THEN 'Inactive' ELSE 'Unknown' END AS Status, * FROM Users;</code>
Pertanyaan ini menambahkan lajur "Status", memperuntukkan 'Aktif', 'Tidak Aktif' atau 'Tidak diketahui' berdasarkan nilai lajur IsActive
.
Menggunakan Fungsi IIF (SQL Server)
Fungsi IIF
(diperkenalkan dalam SQL Server 2012) menawarkan cara ringkas untuk mengendalikan logik bersyarat dalam SELECT
pernyataan.
Sintaks:
<code class="language-sql">IIF(condition, true_result, false_result)</code>
Contoh:
<code class="language-sql">SELECT IIF(OrderTotal > 100, 'High Value', 'Low Value') AS OrderCategory, * FROM Orders;</code>
Contoh ini mencipta lajur "Kategori Pesanan", mengklasifikasikan pesanan sebagai 'Nilai Tinggi' atau 'Nilai Rendah' bergantung pada OrderTotal
. Ambil perhatian bahawa IIF
adalah khusus untuk SQL Server dan mungkin tidak tersedia dalam sistem pangkalan data lain. Untuk keserasian yang lebih luas, pernyataan CASE
biasanya diutamakan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Logik Bersyarat dalam Pernyataan SELECT SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!