MySQL CASE izraz je del funkcije nadzornega toka, ki nam omogoča pisanje če-sicer ali če-potem-drugače logiko do poizvedbe. Ta izraz je mogoče uporabiti povsod, kjer se uporablja veljaven program ali poizvedba, kot je klavzula SELECT, WHERE, ORDER BY itd.
Izraz CASE potrdi različne pogoje in vrne rezultat, ko je prvi pogoj izpolnjen prav . Ko je pogoj izpolnjen, preneha s prečkanjem in poda izhod. Če noben pogoj ne najde resničnega, izvede sicer blok . Ko blok else ni najden, vrne a NIČ vrednost. Glavni cilj MySQL Stavek CASE obravnava več stavkov IF v stavku SELECT.
Stavek CASE lahko uporabimo na dva načina, ki sta naslednja:
1. Preprost stavek CASE:
Prva metoda je vzeti vrednost in jo povezati z danim stavkom, kot je prikazano spodaj.
reagirati vstavljeni slog
Sintaksa
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Vrne rezultat, ko je prvi primerjaj_vrednost primerjava postane resnična. V nasprotnem primeru bo vrnil klavzulo else.
Primer
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Izhod
Po uspešni izvedbi zgornjega ukaza bomo videli naslednji rezultat.
2. Iskani stavek CASE:
Druga metoda je upoštevati a pogoj_iskanja v KDAJ in če najde, vrne rezultat v ustreznem stavku THEN. V nasprotnem primeru bo vrnil klavzulo else. Če člen else ni podan, bo vrnil vrednost NULL.
Sintaksa
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Primer
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Izhod
Vrsta povratka
Izraz CASE vrne rezultat glede na kontekst, kjer je uporabljen. Na primer:
- Če se uporablja v kontekstu niza, vrne rezultat niza.
- Če se uporablja v številskem kontekstu, vrne celo število, plavajočo vrednost, decimalno vrednost.
Podpora za različico MySQL
Izjava CASE lahko podpira naslednje različice MySQL:
- 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
Ustvarimo tabelo ' študenti ' in na tej tabeli izvedite stavek CASE.
izjema vrzi javo
V zgornji tabeli lahko vidimo, da je razredni stolpec vsebuje kratko obliko študentskega oddelka. Zato bomo krajšo obliko oddelka zamenjali s polno obliko. Zdaj izvedite naslednjo poizvedbo, da izvedete to operacijo.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Po uspešni izvedbi zgornje poizvedbe bomo dobili naslednji rezultat. Tukaj lahko vidimo, da je oddelek stolpec vsebuje polno obliko namesto kratke oblike.