SQL CASE utasítás
A CASE nyilatkozat be SQL egy sokoldalú feltételes kifejezés, amely lehetővé teszi számunkra, hogy beépítsük feltételes logika közvetlenül a kérdéseinken belül. Lehetővé teszi bizonyos eredmények visszaadását bizonyos feltételek alapján, lehetővé téve a dinamikus lekérdezési kimeneteket. Akár kell hozzon létre új oszlopokat módosíthatja a meglévőket vagy testreszabhatja a lekérdezések kimenetét CASE nyilatkozat bírja az egészet.
Ebben a cikkben megtudjuk a SQL CASE utasítás részletesen világos példákkal és használati esetekkel, amelyek bemutatják, hogyan lehet kihasználni ezt a funkciót az SQL-lekérdezések javítására.
CASE utasítás SQL-ben
- A
CASEnyilatkozat be SQL egy feltételes kifejezés, amely lehetővé teszi feltételes logika végrehajtását egy lekérdezésben.
- Általában új oszlopok létrehozására használják feltételes logika alapján, amelyek egyéni értékeket biztosítanak, vagy bizonyos feltételek alapján vezérelnek lekérdezési kimeneteket.
- Ha egyetlen feltétel sem teljesül, akkor a MÁS rész végrehajtásra kerül. Ha nincs ELSE rész, akkor visszatér NULL.
Szintaxis:
A CASE utasítás használatához SQL-ben használja a következő szintaxist:
CASE eset_érték
MIKOR feltétel THEN eredmény1
MIKOR feltétel THEN eredmény2
...
Más eredmény
VÉGÜZ;
Példa SQL CASE utasításra
Nézzünk meg néhány példát a CASE utasításra az SQL-ben, hogy jobban megértsük.
Hozzon létre egy demó SQL-táblát, amelyet a példákban fogunk használni.
Demo SQL adatbázis
Ezt a minta SQL-táblázatot fogjuk használni az SQL CASE utasításra vonatkozó példáinkhoz:
| Ügyfélazonosító | Ügyfélnév | Vezetéknév | Ország | Kor | Telefon |
|---|---|---|---|---|---|
| 1 | Kétség | Thakur | India | 23 | xxxxxxxxxx |
| 2 | Biztonságos | Chopra | Ausztrália | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Ausztria | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Spanyolország | 22 | xxxxxxxxxx |
Ugyanazt az adatbázist létrehozhatja a rendszerében a következő MySQL lekérdezés megírásával:
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');1. példa: Egyszerű CASE kifejezés
Ebben a példában a CASE utasítást használjuk
Lekérdezés:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Kimenet:
| Ügyfélnév | Kor | Állampolgárság |
|---|---|---|
| Kétség | 23 | indián |
| Biztonságos | 21 | Külföldi |
| Naveen | 24 | Külföldi |
| Aditya | 21 | Külföldi |
| Nishant. Salchichas S.A. | 22 | Külföldi |
2. példa: SQL CASE, ha több feltétel
Több feltételt is hozzáadhatunk a CASE utasításhoz, ha többszöröst használunk AMIKOR záradékok.
Lekérdezés:
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;Kimenet:
| Ügyfélnév | Kor | QuantityText |
|---|---|---|
| Kétség | 23 | Az életkor több, mint 22 év |
| Biztonságos | 21 | Az életkor 21 |
| Naveen | 24 | Az életkor több, mint 22 év |
| Aditya | 21 | Az életkor 21 |
| Nishant. Salchichas S.A. | 22 | Az életkor 30 év felett van |
3. példa: CASE nyilatkozat ORDER BY záradékkal
Vegyük az Ügyféltáblát, amely tartalmazza az Ügyfélazonosítót Ügyfélnév Vezetéknév Ország Életkor és Telefonszám. Az Ügyfél tábla adatait a segítségével tudjuk ellenőrizni MEGRENDELÉS záradék a CASE utasítással.
Lekérdezés:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Kimenet:
| Ügyfélnév | Ország |
|---|---|
| Biztonságos | Ausztrália |
| Aditya | Ausztria |
| Nishant. Salchichas S.A. | Spanyolország |
| Naveen | Sri Lanka |
| Kétség | India |
Fontos tudnivalók a CASE nyilatkozattal kapcsolatban
- Az SQL CASE utasítás egy feltételes kifejezés, amely lehetővé teszi különböző lekérdezések végrehajtását meghatározott feltételek alapján.
- Mindig legyen a KIVÁLASZTÁS a CASE nyilatkozatban.
- END MÁS az opcionális komponens, de MIKOR AKKOR ezeket az eseteket szerepeltetni kell a CASE utasításban.
- Bármilyen feltételes állítást készíthetünk bármilyen feltételes operátor használatával (pl AHOL ) MIKOR és AKKOR között. Ez magában foglalja több feltételes utasítás összefűzését a használatával ÉS és VAGY.
- Több WHEN utasítást és egy ELSE utasítást is beilleszthetünk a címzetlen feltételek ellen.
Következtetés
A CASE utasítás robusztus mechanizmust biztosít a feltételes logika SQL-lekérdezésekbe való beépítéséhez. Az utasítás használatával különféle feltételeket kezelhet, és hatékonyan testreszabhatja a lekérdezések kimenetét. A végrehajtás módjának megértése CASE kifejezések lehetővé teszik kifinomultabb adatkezelést és jelentéskészítést, így az SQL-lekérdezések dinamikusabbak és reagálóbbak a különböző forgatókönyvekre.