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 CASE izjava 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.

Napravi kviz