MySQL CASE išraiška yra valdymo srauto funkcijos dalis, kuri leidžia mums parašyti jei-kitaip arba jei-tai-kita užklausos logika. Ši išraiška gali būti naudojama visur, kur naudojama tinkama programa arba užklausa, pvz., SELECT, WHERE, ORDER BY ir kt.
CASE išraiška patvirtina įvairias sąlygas ir pateikia rezultatą, kai yra pirmoji sąlyga tiesa . Kai sąlyga įvykdoma, ji nustoja judėti ir pateikia rezultatą. Jei ji neranda jokios tikrosios sąlygos, ji įvykdo kitas blokas . Kai blokas else nerandamas, jis grąžina a NULL vertė. Pagrindinis tikslas MySQL CASE teiginys yra susijęs su keliais IF sakiniais SELECT sąlygoje.
CASE teiginį galime naudoti dviem būdais, kurie yra tokie:
1. Paprastas CASE teiginys:
Pirmasis metodas yra paimti reikšmę ir suderinti ją su pateiktu teiginiu, kaip parodyta toliau.
android versijos
Sintaksė
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Jis grąžina rezultatą, kai pirmą kartą palyginti_vertę palyginimas tampa tikru. Priešingu atveju bus grąžinta kita sąlyga.
Pavyzdys
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Išvestis
Sėkmingai įvykdę aukščiau pateiktą komandą, pamatysime tokią išvestį.
2. Ieškota CASE teiginio:
Antrasis būdas yra apsvarstyti a paieškos_sąlyga viduje KADA sakinius, o jei randa, grąžinkite rezultatą atitinkamame THEN sakinyje. Priešingu atveju bus grąžinta kita sąlyga. Jei kita sąlyga nenurodyta, ji grąžins NULL reikšmę.
Sintaksė
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Pavyzdys
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Išvestis
eilutę konvertuoti į sveikąjį skaičių
Grąžinimo tipas
CASE išraiška grąžina rezultatą, priklausomai nuo konteksto, kuriame jis naudojamas. Pavyzdžiui:
- Jei jis naudojamas eilutės kontekste, jis grąžina eilutės rezultatą.
- Jei jis naudojamas skaitiniame kontekste, jis grąžina sveikąjį skaičių, slankiąją, dešimtainę reikšmę.
MySQL versijos palaikymas
CASE teiginys gali palaikyti šias MySQL versijas:
- 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
Sukurkime lentelę studentai “ ir šioje lentelėje atlikite CASE teiginį.
Aukščiau pateiktoje lentelėje matome, kad klasės stulpelis yra trumpoji studentų skyriaus forma. Todėl trumpąją skyriaus formą ketiname keisti pilna forma. Dabar atlikite šią užklausą, kad atliktumėte šią operaciją.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Sėkmingai įvykdę aukščiau pateiktą užklausą, gausime tokią išvestį. Čia matome, kad skyrius stulpelyje yra visa forma, o ne trumpoji forma.