MySQL CASE izraz je dio funkcije kontrolnog tijeka koji nam omogućuje pisanje if-else ili if-then-else logika upita. Ovaj izraz se može koristiti svugdje gdje se koristi važeći program ili upit, kao što je klauzula SELECT, WHERE, ORDER BY itd.
Izraz CASE potvrđuje različite uvjete i vraća rezultat kada je prvi uvjet ispunjen pravi . Nakon što je uvjet zadovoljen, prestaje obilaziti i daje izlaz. Ako ne pronađe nijedan uvjet istinit, izvršava inače blok . Kada blok else nije pronađen, vraća a NULL vrijednost. Glavni cilj od MySQL Izjava CASE služi za rad s više naredbi IF u klauzuli SELECT.
Naredbu CASE možemo koristiti na dva načina, a to su:
1. Jednostavna CASE izjava:
Prva metoda je uzeti vrijednost i uskladiti je s danom izjavom, kao što je prikazano u nastavku.
c++ funkcija prototipa
Sintaksa
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Vraća rezultat kada prvi usporediti_vrijednost usporedba postaje istinita. U suprotnom će vratiti klauzulu else.
Primjer
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Izlaz
Nakon uspješnog izvođenja gornje naredbe, vidjet ćemo sljedeći izlaz.
2. Pretraženi CASE izraz:
Druga metoda je razmatranje a uvjet_pretrage u KADA klauzule, a ako pronađe, vraća rezultat u odgovarajuću klauzulu THEN. U suprotnom će vratiti klauzulu else. Ako klauzula else nije navedena, vratit će vrijednost NULL.
Sintaksa
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Primjer
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Izlaz
do while petlja u Javi
Vrsta povrata
Izraz CASE vraća rezultat ovisno o kontekstu u kojem se koristi. Na primjer:
- Ako se koristi u kontekstu niza, vraća rezultat niza.
- Ako se koristi u numeričkom kontekstu, vraća cijeli broj, float, decimalnu vrijednost.
Podrška za MySQL verziju
Izjava CASE može podržati sljedeće MySQL verzije:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
- MySQL 3.23.3
Napravimo tablicu ' učenicima ' i izvršite naredbu CASE na ovoj tablici.
U gornjoj tablici možemo vidjeti da je razredna kolona sadrži skraćeni oblik studentskog odjela. Zato ćemo skraćeni oblik odjela zamijeniti punim oblikom. Sada izvršite sljedeći upit da izvršite ovu operaciju.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Nakon uspješnog izvršenja gornjeg upita, dobit ćemo sljedeći izlaz. Ovdje možemo vidjeti da je odjelu stupac sadrži puni oblik umjesto kratkog oblika.