SQL příkaz CASE je podmíněný výraz, který umožňuje uživatelům provádět různé akce na základě různých podmínek. Je podobná logice if-else v jiných programovacích jazycích.
Příkaz CASE v SQL
CASE Expression v SQL prochází všemi podmínkami a zastaví se, když je splněna jakákoli podmínka. Poté, co podmínka vrátí hodnotu true, nekontroluje další podmínky a vrátí výsledky založené na této podmínce.
Pokud není splněna žádná podmínka, provede se část ELSE. Pokud neexistuje žádná ELSE část, vrátí se NULA.
Syntax
Chcete-li použít příkaz CASE v SQL, použijte následující syntaxi:
POUZDRO case_value
KDYŽ stav PAK výsledek1
KDYŽ stav PAK výsledek2
…
Jiný výsledek
KONEC POUZDRO;
Příklad SQL CASE
Podívejme se na některé příklady příkazu CASE v SQL, abychom mu lépe porozuměli.
Vytvořme ukázkovou SQL tabulku, která bude použita v příkladech.
Demo databáze SQL
Tuto ukázkovou tabulku SQL budeme používat pro naše příklady příkazu SQL CASE:
| Zákaznické identifikační číslo | Jméno zákazníka | Příjmení | Země | Stáří | Telefon |
|---|---|---|---|---|---|
| 1 | Pochybovat | Thakur | Indie | 23 | xxxxxxxxxx |
| 2 | Bezpečný | Chopra | Austrálie | dvacet jedna | xxxxxxxxxx |
| 3 | Naveen | Tulasí | Srí Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Rakousko | dvacet jedna | xxxxxxxxxx |
| 5 | Nishant. Klobásy S.A. | Jain | Španělsko | 22 | xxxxxxxxxx |
Stejnou databázi můžete vytvořit ve svém systému zadáním následujícího dotazu MySQL:
MySQL CREATE TABLE Customer( CustomerID INT PRIMARY KEY, CustomerName VARCHAR(50), LastName VARCHAR(50), Country VARCHAR(50), Age int(2), Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID, CustomerName, LastName, Country, Age, Phone) VALUES (1, 'Shubham', 'Thakur', 'India','23','xxxxxxxxxx'), (2, 'Aman ', 'Chopra', 'Australia','21','xxxxxxxxxx'), (3, 'Naveen', 'Tulasi', 'Sri lanka','24','xxxxxxxxxx'), (4, 'Aditya', 'Arpan', 'Austria','21','xxxxxxxxxx'), (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain','22','xxxxxxxxxx');>
Příklad výrazu CASE
V tomto příkladu použijeme příkaz CASE
Dotaz:
SELECT CustomerName, Age , CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;>
Příklad SQL CASE When Multiple Conditions
Do příkazu CASE můžeme přidat více podmínek pomocí multiple KDYŽ doložky.
Dotaz:
SELECT CustomerName, Age, CASE WHEN Age>22 POTOM 'Věk je větší než 22' KDYŽ Věk = 21 PAK 'Věk je 21' JINAK 'Věk je nad 30' KONČÍ JAKO QuantityText OD Zákazníka;>
Výstup:

Výstup
Prohlášení CASE s příkladem klauzule ORDER BY
Vezměme si tabulku zákazníků, která obsahuje CustomerID, CustomerName, LastName, Country, Age a Phone. Údaje tabulky Zákazník můžeme zkontrolovat pomocí SEŘADIT PODLE klauzule s příkazem CASE.
Dotaz:
SELECT CustomerName, Country FROM Customer ORDER BY ( CASE WHEN Country IS 'India' THEN Country ELSE Age END );>
Výstup:

Příkaz CASE s výstupem příkladu klauzule ORDER BY
Důležité body k prohlášení CASE
- Příkaz SQL CASE je podmíněný výraz, který umožňuje provádění různých dotazů na základě zadaných podmínek.
- Vždy by mělo být a VYBRAT v prohlášení CASE.
- END ELSE je volitelná součást, ale KDY PAK tyto případy musí být zahrnuty do příkazu CASE.
- Můžeme provést jakýkoli podmíněný příkaz pomocí libovolného podmíněného operátoru (např KDE ) mezi WHEN a THEN. To zahrnuje spojení více podmíněných příkazů pomocí AND a OR.
- Můžeme zahrnout více příkazů WHEN a příkaz ELSE, abychom čelili neadresným podmínkám.