SQL CASE izjava
The CASE izjava u SQL je svestran uvjetni izraz koji nam omogućuje uključivanje uvjetna logika izravno unutar naših upita. Omogućuje vam da vratite određene rezultate na temelju određenih uvjeta koji omogućuju dinamičke rezultate upita. Trebate li stvoriti nove stupce izmijenite postojeće ili prilagodite izlaz svojih upita CASE izjava može sve to podnijeti.
U ovom članku ćemo naučiti SQL CASE izjava detaljno s jasnim primjerima i slučajevima korištenja koji pokazuju kako iskoristiti ovu značajku za poboljšanje vaših SQL upita.
CASE iskaz u SQL-u
- The
CASEizjava u SQL je uvjetni izraz koji vam omogućuje izvođenje uvjetne logike unutar upita.
- Obično se koristi za stvaranje novih stupaca na temelju uvjetne logike davanja prilagođenih vrijednosti ili kontrole izlaza upita na temelju određenih uvjeta.
- Ako nijedan uvjet nije istinit, onda je DRUGO dio će biti izvršen. Ako nema ELSE dijela onda se vraća NULL.
Sintaksa:
Za korištenje naredbe CASE u SQL-u koristite sljedeću sintaksu:
CASE case_vrijednost
WHEN uvjet THEN rezultat1
WHEN uvjet THEN rezultat2
...
Drugi rezultat
END CASE;
Primjer SQL CASE izjave
Pogledajmo neke primjere naredbe CASE u SQL-u da bismo je bolje razumjeli.
Kreirajmo demo SQL tablicu koja će se koristiti u primjerima.
Demo SQL baza podataka
Koristit ćemo ovu oglednu SQL tablicu za naše primjere SQL CASE izjave:
| ID kupca | Ime kupca | Prezime | Zemlja | Dob | Telefon |
|---|---|---|---|---|---|
| 1 | Sumnjati | Thakur | Indija | 23 | xxxxxxxxxx |
| 2 | Sef | Chopra | Australija | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Šri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Austrija | 21 | xxxxxxxxxx |
| 5 | Nišant. Salchichas S.A. | Jain | Španjolska | 22 | xxxxxxxxxx |
Istu bazu podataka možete stvoriti u svom sustavu pisanjem sljedećeg MySQL upita:
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');Primjer 1: Jednostavni CASE izraz
U ovom primjeru koristimo naredbu CASE
Upit:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Izlaz:
| Ime kupca | Dob | Nacionalnost |
|---|---|---|
| Sumnjati | 23 | Indijanac |
| Sef | 21 | Strani |
| Naveen | 24 | Strani |
| Aditya | 21 | Strani |
| Nišant. Salchichas S.A. | 22 | Strani |
Primjer 2: SQL CASE kada postoji više uvjeta
Možemo dodati više uvjeta u naredbu CASE korištenjem višestrukih KADA klauzule.
Upit:
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;Izlaz:
| Ime kupca | Dob | QuantityText |
|---|---|---|
| Sumnjati | 23 | Starost je veća od 22 godine |
| Sef | 21 | Starost je 21 |
| Naveen | 24 | Starost je veća od 22 godine |
| Aditya | 21 | Starost je 21 |
| Nišant. Salchichas S.A. | 22 | Starost je preko 30 godina |
Primjer 3: Izjava CASE s klauzulom ORDER BY
Uzmimo tablicu korisnika koja sadrži CustomerID CustomerName Prezime Država Dob i telefon. Podatke tablice kupaca možemo provjeriti pomoću NARUČI PO klauzula s naredbom CASE.
Upit:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Izlaz:
| Ime kupca | Zemlja |
|---|---|
| Sef | Australija |
| Aditya | Austrija |
| Nišant. Salchichas S.A. | Španjolska |
| Naveen | Šri Lanka |
| Sumnjati | Indija |
Važne točke o naredbi CASE
- SQL CASE izjava je uvjetni izraz koji dopušta izvršavanje različitih upita na temelju navedenih uvjeta.
- Uvijek treba postojati a ODABERI u naredbi CASE.
- END ELSE je neobavezna komponenta ali KADA ONDA ovi slučajevi moraju biti uključeni u naredbu CASE.
- Možemo napraviti bilo koji uvjetni iskaz koristeći bilo koji uvjetni operator (kao što je GDJE ) između KADA i ONDA. To uključuje spajanje više uvjetnih izraza pomoću I i ILI.
- Možemo uključiti više naredbi WHEN i naredbu ELSE kako bismo se suprotstavili neadresiranim uvjetima.
Zaključak
The CASE izjava pruža robustan mehanizam za uključivanje uvjetne logike u SQL upite. Korištenjem ove izjave možete se nositi s raznim uvjetima i učinkovito prilagoditi izlaz svojih upita. Razumijevanje kako implementirati CASE izrazi vam omogućuju izvođenje sofisticiranije manipulacije podacima i izvješćivanja čineći vaše SQL upite dinamičnijima i osjetljivijima na različite scenarije.