SQL CASE vyhlásenie
The CASE vyhlásenie v SQL je všestranný podmienený výraz, ktorý nám umožňuje začleniť podmienená logika priamo v rámci našich dopytov. Umožňuje vám vrátiť konkrétne výsledky na základe určitých podmienok umožňujúcich dynamické výstupy dotazov. Či už potrebujete vytvoriť nové stĺpce upravte existujúce alebo prispôsobte výstup vašich dopytov vyhlásenie CASE zvládne to všetko.
V tomto článku sa naučíme SQL príkaz CASE podrobne s jasnými príkladmi a prípadmi použitia, ktoré ukazujú, ako využiť túto funkciu na zlepšenie vašich SQL dotazov.
Príkaz CASE v SQL
- The
CASEvyhlásenie v SQL je podmienený výraz, ktorý vám umožňuje vykonávať podmienenú logiku v rámci dotazu.
- Bežne sa používa na vytváranie nových stĺpcov na základe podmienenej logiky, poskytuje vlastné hodnoty alebo výstupy riadiaceho dotazu na základe určitých podmienok.
- Ak nie je splnená žiadna podmienka, potom ELSE časť bude vykonaná. Ak tam nie je iná časť, vráti sa NULL.
Syntax:
Ak chcete použiť príkaz CASE v SQL, použite nasledujúcu syntax:
CASE case_value
KEĎ podmienka POTOM výsledok1
KEDY podmienka POTOM výsledok2
...
Iný výsledok
KONCOVÝ PRÍPAD;
Príklad príkazu SQL CASE
Pozrime sa na niekoľko príkladov príkazu CASE v SQL, aby sme mu lepšie porozumeli.
Vytvorme si ukážkovú SQL tabuľku, ktorá bude použitá v príkladoch.
Demo SQL databáza
Túto vzorovú tabuľku SQL použijeme pre naše príklady príkazu SQL CASE:
| CustomerID | Meno zákazníka | Priezvisko | Krajina | Vek | Telefón |
|---|---|---|---|---|---|
| 1 | Pochybnosť | Thakur | India | 23 | xxxxxxxxxx |
| 2 | Bezpečný | Chopra | Austrália | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Srí Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Rakúsko | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Španielsko | 22 | xxxxxxxxxx |
Rovnakú databázu môžete vytvoriť vo svojom systéme napísaním nasledujúceho dotazu 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');Príklad 1: Jednoduchý CASE výraz
V tomto príklade použijeme príkaz CASE
dotaz:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;výstup:
| Meno zákazníka | Vek | národnosť |
|---|---|---|
| Pochybnosť | 23 | indický |
| Bezpečný | 21 | Zahraničné |
| Naveen | 24 | Zahraničné |
| Aditya | 21 | Zahraničné |
| Nishant. Salchichas S.A. | 22 | Zahraničné |
Príklad 2: PRÍPAD SQL pri viacerých podmienkach
Do príkazu CASE môžeme pridať viacero podmienok pomocou viacerých KEDY klauzuly.
dotaz:
SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;výstup:
| Meno zákazníka | Vek | QuantityText |
|---|---|---|
| Pochybnosť | 23 | Vek je vyšší ako 22 |
| Bezpečný | 21 | Vek je 21 |
| Naveen | 24 | Vek je vyšší ako 22 |
| Aditya | 21 | Vek je 21 |
| Nishant. Salchichas S.A. | 22 | Vek je nad 30 rokov |
Príklad 3: Vyhlásenie CASE s doložkou ORDER BY
Vezmime si tabuľku zákazníkov, ktorá obsahuje CustomerID Meno zákazníka Priezvisko Krajina Vek a Telefón. Údaje v tabuľke Zákazník môžeme skontrolovať pomocou OBJEDNAŤ PODĽA doložka s výrokom CASE.
dotaz:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);výstup:
| Meno zákazníka | Krajina |
|---|---|
| Bezpečný | Austrália |
| Aditya | Rakúsko |
| Nishant. Salchichas S.A. | Španielsko |
| Naveen | Srí Lanka |
| Pochybnosť | India |
Dôležité body o vyhlásení CASE
- Príkaz SQL CASE je podmienený výraz, ktorý umožňuje vykonávanie rôznych dotazov na základe špecifikovaných podmienok.
- Vždy by mala existovať a VYBRAŤ vo vyhlásení CASE.
- END ELSE je voliteľný komponent, ale KEDY POTOM tieto prípady musia byť zahrnuté do výkazu CASE.
- Môžeme urobiť akýkoľvek podmienený príkaz pomocou akéhokoľvek podmieneného operátora (napr KDE ) medzi WHEN a THEN. To zahŕňa spájanie viacerých podmienených príkazov pomocou A a OR.
- Môžeme zahrnúť viacero príkazov WHEN a príkaz ELSE, aby sme čelili neadresným podmienkam.
Záver
The CASE poskytuje robustný mechanizmus na začlenenie podmienenej logiky do SQL dotazov. Pomocou tohto vyhlásenia môžete zvládnuť rôzne podmienky a efektívne prispôsobiť výstup vašich dopytov. Pochopenie spôsobu implementácie CASE Výrazy vám umožňujú vykonávať sofistikovanejšiu manipuláciu s údajmi a vytváranie správ, vďaka čomu sú vaše dotazy SQL dynamickejšie a reagujú na rôzne scenáre.