Stavek SQL CASE
The CASE izjava v SQL je vsestranski pogojni izraz, ki nam omogoča vključitev pogojna logika neposredno znotraj naših poizvedb. Omogoča vam vrnitev določenih rezultatov na podlagi določenih pogojev, ki omogočajo dinamične rezultate poizvedbe. Ali je treba ustvarite nove stolpce spremenite obstoječe ali prilagodite rezultate svojih poizvedb Izjava CASE zmore vse.
V tem članku se bomo naučili Izjava SQL CASE podrobno z jasnimi primeri in primeri uporabe, ki prikazujejo, kako izkoristiti to funkcijo za izboljšanje poizvedb SQL.
Izjava CASE v SQL
- The
CASEizjava v SQL je pogojni izraz, ki vam omogoča izvajanje pogojne logike znotraj poizvedbe.
- Običajno se uporablja za ustvarjanje novih stolpcev na podlagi pogojne logike, ki zagotavlja vrednosti po meri ali nadzor izhodov poizvedbe na podlagi določenih pogojev.
- Če noben pogoj ni resničen, potem je DRUGEGA del bo izveden. Če ni dela ELSE, se vrne NULL.
Sintaksa:
Za uporabo izjave CASE v SQL uporabite naslednjo sintakso:
CASE primer_vrednost
WHEN pogoj THEN rezultat1
WHEN pogoj THEN rezultat2
...
Drug rezultat
KONČNI OHIŠJE;
Primer izjave SQL CASE
Oglejmo si nekaj primerov stavka CASE v SQL, da ga bomo bolje razumeli.
Ustvarimo demo tabelo SQL, ki bo uporabljena v primerih.
Demo baza podatkov SQL
To vzorčno tabelo SQL bomo uporabili za naše primere izjave SQL CASE:
| ID stranke | Ime stranke | LastName | Država | Starost | Telefon |
|---|---|---|---|---|---|
| 1 | Dvom | Thakur | Indija | 23 | xxxxxxxxxx |
| 2 | Varno | Chopra | Avstralija | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Šrilanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Avstrija | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Španija | 22 | xxxxxxxxxx |
Isto bazo podatkov lahko ustvarite v svojem sistemu tako, da napišete naslednjo poizvedbo 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');Primer 1: Preprost izraz CASE
V tem primeru uporabljamo stavek CASE
poizvedba:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Izhod:
| Ime stranke | Starost | Narodnost |
|---|---|---|
| Dvom | 23 | indijski |
| Varno | 21 | Tuje |
| Naveen | 24 | Tuje |
| Aditya | 21 | Tuje |
| Nishant. Salchichas S.A. | 22 | Tuje |
Primer 2: SQL CASE pri več pogojih
V stavku CASE lahko dodamo več pogojev z uporabo multiple KDAJ klavzule.
poizvedba:
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;Izhod:
| Ime stranke | Starost | QuantityText |
|---|---|---|
| Dvom | 23 | Starost je večja od 22 |
| Varno | 21 | Starost je 21 |
| Naveen | 24 | Starost je večja od 22 |
| Aditya | 21 | Starost je 21 |
| Nishant. Salchichas S.A. | 22 | Starost je nad 30 |
Primer 3: Izjava CASE s klavzulo ORDER BY
Vzemimo tabelo strank, ki vsebuje CustomerID CustomerName LastName Država Starost in telefon. Podatke tabele Stranka lahko preverimo z uporabo NAROČI PO klavzula s stavkom CASE.
poizvedba:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Izhod:
| Ime stranke | Država |
|---|---|
| Varno | Avstralija |
| Aditya | Avstrija |
| Nishant. Salchichas S.A. | Španija |
| Naveen | Šrilanka |
| Dvom | Indija |
Pomembne točke o izjavi CASE
- Stavek SQL CASE je pogojni izraz, ki omogoča izvajanje različnih poizvedb na podlagi podanih pogojev.
- Vedno mora obstajati a IZBERI v izjavi CASE.
- END ELSE je neobvezna komponenta, vendar KDAJ TAKRAT ti primeri morajo biti vključeni v stavek CASE.
- S katerim koli pogojnim operatorjem lahko naredimo kateri koli pogojni stavek (npr KJE ) med KDAJ in POTEM. To vključuje nizanje več pogojnih stavkov z uporabo IN in ALI.
- Vključimo lahko več stavkov WHEN in stavek ELSE, da preprečimo nenaslovljene pogoje.
Zaključek
The CASE zagotavlja robusten mehanizem za vključevanje pogojne logike v poizvedbe SQL. Z uporabo tega stavka lahko obravnavate različne pogoje in učinkovito prilagodite rezultate svojih poizvedb. Razumevanje, kako izvajati CASE izrazi vam omogočajo bolj sofisticirano obdelavo podatkov in poročanje, zaradi česar so vaše poizvedbe SQL bolj dinamične in odzivne na različne scenarije.