logo

Příkaz SQL CASE

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í čísloJméno zákazníkaPříjmeníZeměStáříTelefon
1PochybovatThakurIndie23xxxxxxxxxx
2BezpečnýChopraAustráliedvacet jednaxxxxxxxxxx
3NaveenTulasíSrí Lanka24xxxxxxxxxx
4AdityaArpanRakouskodvacet jednaxxxxxxxxxx
5Nishant. Klobásy S.A.JainŠpanělsko22xxxxxxxxxx

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:

přidání více podmínek do výstupu příkladu příkazu case

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 pořadí podle klauzule

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.