Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Logik If-Then-Else dalam Pertanyaan SQL?

Bagaimanakah Saya Boleh Melaksanakan Logik If-Then-Else dalam Pertanyaan SQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 04:59:08829semak imbas

How Can I Implement If-Then-Else Logic in SQL Queries?

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!

Kenyataan:
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