Logik If-Then-Else dalam SQL
SQL menawarkan keupayaan untuk melaksanakan logik bersyarat menggunakan pernyataan CASE. Walaupun ia mungkin tidak menyediakan sintaks langsung untuk binaan if-then-else, ia membolehkan anda mentakrifkan satu siri keadaan dan tindakan yang sepadan.
Masalah:
Andaikan anda ingin memilih data daripada jadual berdasarkan keutamaan tertentu:
Penyelesaian Menggunakan KES:
SELECT product, price FROM table1 WHERE CASE WHEN EXISTS (SELECT 1 FROM table1 WHERE project = 1) THEN 1 WHEN EXISTS (SELECT 1 FROM table1 WHERE customer = 2) THEN 2 WHEN EXISTS (SELECT 1 FROM table1 WHERE company = 3) THEN 3 ELSE NULL END IS NOT NULL;
Pertanyaan ini menilai setiap keadaan secara berurutan. Jika projek mempunyai rekod, ia mengembalikan baris yang sepadan; jika tidak, ia menyemak pelanggan dan kemudian syarikat. Hanya baris yang memenuhi mana-mana syarat akan dipilih.
Contoh:
Jadual berikut mengandungi beberapa sampel data:
product | price | project | customer | company |
---|---|---|---|---|
A | 10 | 1 | NULL | NULL |
B | 20 | NULL | 2 | NULL |
C | 30 | NULL | NULL | 3 |
Melaksanakan pertanyaan akan mengembalikan hasil berikut:
product | price |
---|---|
A | 10 |
Memandangkan terdapat baris dengan projek = 1, syarat lain diabaikan dan baris dengan produk "A" dipilih.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Logik If-Then-Else Menggunakan Pernyataan CASE SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!