Bolehkah SQL Mengendalikan Logik If-Then-Else?
Anda perlu mendapatkan semula data daripada jadual berdasarkan keutamaan, dan anda tidak pasti bagaimana untuk mendekati ini dalam SQL. Mari kita selidiki pertanyaan ini dan terokai pilihan untuk mengendalikan logik bersyarat.
Mengendalikan Logik Bersyarat dalam SQL
Bertentangan dengan bahasa pengaturcaraan tradisional, SQL tidak mempunyai if-then -pernyataan lain. Walau bagaimanapun, terdapat beberapa pendekatan untuk meniru logik bersyarat:
Menggunakan Pernyataan KES
Pernyataan KES menyediakan cara yang fleksibel untuk mengendalikan logik bersyarat. Anda boleh menentukan berbilang syarat dan mengembalikan hasil yang berbeza berdasarkan setiap syarat. Berikut ialah contoh:
SELECT CASE WHEN (SELECT COUNT(*) FROM table1 WHERE project = 1) > 0 THEN (SELECT product, price FROM table1 WHERE project = 1) WHEN (SELECT COUNT(*) FROM table1 WHERE customer = 2) > 0 THEN (SELECT product, price FROM table1 WHERE customer = 2) WHEN (SELECT COUNT(*) FROM table1 WHERE company = 3) > 0 THEN (SELECT product, price FROM table1 WHERE company = 3) ELSE 'No price found' END;
Menggunakan Pernyataan IF-THEN-ELSE (Procedural SQL)
Dalam SQL prosedural, anda boleh menggunakan pernyataan IF-THEN-ELSE untuk menyemak keadaan dan melaksanakan blok pertanyaan yang berbeza berdasarkan hasilnya. Perlu diingat bahawa MS SQL tidak menyokong IF-THEN-ELSE secara langsung. Walau bagaimanapun, anda boleh mensimulasikannya menggunakan pernyataan CASE atau pernyataan sp_if.
Menggunakan Operator UNION
Operator UNION boleh digunakan untuk menggabungkan hasil beberapa pertanyaan ke dalam set hasil tunggal. Pendekatan ini berguna jika anda ingin mengutamakan satu pertanyaan berbanding yang lain, kerana pertanyaan terdahulu akan disemak terlebih dahulu.
SELECT product, price FROM table1 WHERE project = 1 UNION SELECT product, price FROM table1 WHERE customer = 2 UNION SELECT product, price FROM table1 WHERE company = 3;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Logik If-Then-Else dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!