Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melaksanakan Logik If-Then-Else Menggunakan Pernyataan CASE SQL?

Bagaimanakah Saya Boleh Melaksanakan Logik If-Then-Else Menggunakan Pernyataan CASE SQL?

Barbara Streisand
Lepaskan: 2024-12-29 05:10:11
asal
355 orang telah melayarinya

How Can I Implement If-Then-Else Logic Using SQL's CASE Statement?

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:

  • Jika projek mempunyai rekod, kembalikan itu.
  • Jika pelanggan mempunyai rekod, pulangkan.
  • Jika syarikat mempunyai rekod, pulangkan.

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

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!

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