Příkaz SQL CASE
The CASE prohlášení v SQL je všestranný podmíněný výraz, který nám umožňuje začlenit podmíněná logika přímo v rámci našich dotazů. Umožňuje vám vrátit konkrétní výsledky na základě určitých podmínek umožňujících dynamické výstupy dotazů. Ať už potřebujete vytvořit nové sloupce upravit stávající nebo upravit výstup vašich dotazů prohlášení CASE to všechno zvládne.
V tomto článku se naučíme SQL příkaz CASE podrobně s jasnými příklady a případy použití, které ukazují, jak využít tuto funkci ke zlepšení vašich SQL dotazů.
Příkaz CASE v SQL
- The
CASEprohlášení v SQL je podmíněný výraz, který umožňuje provádět podmíněnou logiku v rámci dotazu.
- Běžně se používá k vytváření nových sloupců na základě podmíněné logiky, poskytuje vlastní hodnoty nebo řídí výstupy dotazů na základě určitých podmínek.
- Pokud žádná podmínka neplatí, pak JINÝ část bude provedena. Pokud neexistuje žádná ELSE část, vrátí se NULL.
Syntax:
Chcete-li použít příkaz CASE v SQL, použijte následující syntaxi:
CASE hodnota_případu
KDYŽ podmínka PAK výsledek1
KDYŽ podmínka PAK výsledek2
...
Jiný výsledek
KONCOVÝ PŘÍPAD;
Příklad příkazu 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:
| Číslo zákazníka | Jméno zákazníka | Příjmení | Země | Stáří | Telefon |
|---|---|---|---|---|---|
| 1 | Pochybovat | Thakur | Indie | 23 | xxxxxxxxxx |
| 2 | Trezor | Chopra | Austrálie | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasí | Srí Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Rakousko | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Španělsko | 22 | xxxxxxxxxx |
Stejnou databázi můžete vytvořit ve svém systému napsáním následujícího 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');Příklad 1: Jednoduchý výraz 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;výstup:
| Jméno zákazníka | Stáří | Státní příslušnost |
|---|---|---|
| Pochybovat | 23 | indický |
| Trezor | 21 | Zahraniční |
| Naveen | 24 | Zahraniční |
| Aditya | 21 | Zahraniční |
| Nishant. Salchichas S.A. | 22 | Zahraniční |
Příklad 2: PŘÍPAD SQL při více podmínkách
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 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:
| Jméno zákazníka | Stáří | QuantityText |
|---|---|---|
| Pochybovat | 23 | Věk je vyšší než 22 |
| Trezor | 21 | Věk je 21 |
| Naveen | 24 | Věk je vyšší než 22 |
| Aditya | 21 | Věk je 21 |
| Nishant. Salchichas S.A. | 22 | Věk je přes 30 |
Příklad 3: Příkaz CASE s doložkou ORDER BY
Vezměme si tabulku zákazníků, která obsahuje CustomerID CustomerName Příjmení Země Věk a Telefon. Údaje tabulky Zákazník můžeme zkontrolovat pomocí OBJEDNAT 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:
| Jméno zákazníka | Země |
|---|---|
| Trezor | Austrálie |
| Aditya | Rakousko |
| Nishant. Salchichas S.A. | Španělsko |
| Naveen | Srí Lanka |
| Pochybovat | Indie |
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 řetězení více podmíněných příkazů pomocí A a OR.
- Můžeme zahrnout více příkazů WHEN a příkaz ELSE, abychom čelili neadresným podmínkám.
Závěr
The CASE poskytuje robustní mechanismus pro začlenění podmíněné logiky do dotazů SQL. Pomocí tohoto příkazu můžete zvládnout různé podmínky a efektivně přizpůsobit výstup vašich dotazů. Pochopení, jak implementovat CASE Výrazy vám umožňují provádět sofistikovanější manipulaci s daty a vytváření sestav, díky čemuž jsou vaše dotazy SQL dynamičtější a reagují na různé scénáře.