MySQL CASE výraz je súčasťou funkcie riadiaceho toku, ktorá nám umožňuje písať ak-inak alebo ak-tak-inak logiku k dotazu. Tento výraz možno použiť kdekoľvek, kde sa používa platný program alebo dotaz, ako napríklad klauzula SELECT, WHERE, ORDER BY atď.
Výraz CASE overuje rôzne podmienky a vráti výsledok, keď je prvá podmienka pravda . Po splnení podmienky zastaví prechádzanie a vydá výstup. Ak nenájde žiadnu podmienku pravdivú, vykoná sa inak blokovať . Keď sa nenájde blok else, vráti a NULOVÝ hodnotu. Hlavným cieľom MySQL Príkaz CASE sa má zaoberať viacerými príkazmi IF v klauzule SELECT.
Príkaz CASE môžeme použiť dvoma spôsobmi, ktoré sú nasledovné:
1. Jednoduchý príkaz CASE:
Prvým spôsobom je vziať hodnotu a spárovať ju s daným príkazom, ako je uvedené nižšie.
singleton dizajnový vzor java
Syntax
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Vráti výsledok pri prvom porovnať_hodnotu porovnanie sa stáva pravdou. V opačnom prípade vráti klauzulu else.
Príklad
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Výkon
Po úspešnom vykonaní vyššie uvedeného príkazu uvidíme nasledujúci výstup.
2. Hľadaný výraz CASE:
Druhým spôsobom je zvážiť a search_condition v KEDY klauzuly, a ak nájde, vráti výsledok v zodpovedajúcej klauzule THEN. V opačnom prípade vráti klauzulu else. Ak klauzula else nie je špecifikovaná, vráti hodnotu NULL.
Syntax
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Príklad
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Výkon
Typ návratu
Výraz CASE vráti výsledok v závislosti od kontextu, v ktorom sa používa. Napríklad:
- Ak sa použije v kontexte reťazca, vráti výsledok reťazca.
- Ak sa použije v číselnom kontexte, vráti celočíselné, pohyblivé a desatinné hodnoty.
Podpora verzie MySQL
Príkaz CASE môže podporovať nasledujúce verzie 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
Poďme vytvoriť tabuľku ' študentov “ a v tejto tabuľke vykonajte príkaz CASE.
Vo vyššie uvedenej tabuľke môžeme vidieť, že stĺpec triedy obsahuje skrátenú formu študentského oddelenia. Preto sa chystáme zmeniť krátku formu oddelenia za plnú. Teraz vykonajte nasledujúci dotaz na vykonanie tejto operácie.
java rovná sa
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 úspešnom vykonaní vyššie uvedeného dotazu dostaneme nasledujúci výstup. Tu môžeme vidieť, že oddelenie stĺpec obsahuje celý formulár namiesto krátkeho formulára.