SQL CASE-erklæring

De CASE erklæring i SQL er et alsidigt betinget udtryk, der gør os i stand til at inkorporere betinget logik direkte i vores forespørgsler. Det giver dig mulighed for at returnere specifikke resultater baseret på visse betingelser, hvilket muliggør dynamiske forespørgselsoutput. Uanset om du har brug for det oprette nye kolonner ændre eksisterende eller tilpas outputtet af dine forespørgsler CASE redegørelse kan klare det hele.

I denne artikel lærer vi SQL CASE-sætning i detaljer med klare eksempler og use cases, der viser, hvordan du kan udnytte denne funktion til at forbedre dine SQL-forespørgsler.

CASE-sætning i SQL

  • De CASE erklæring i SQL er et betinget udtryk, der giver dig mulighed for at udføre betinget logik i en forespørgsel.
  • Det bruges almindeligvis til at oprette nye kolonner baseret på betinget logik, der giver brugerdefinerede værdier eller kontrollerer forespørgselsoutput baseret på visse betingelser.
  • Hvis ingen betingelse er sand, så er ANDET del vil blive udført. Hvis der ikke er nogen anden del, vender den tilbage NULL.

Syntaks:

For at bruge CASE Statement i SQL skal du bruge følgende syntaks:

CASE case_value
NÅR tilstand SÅ resultat1
NÅR tilstand SÅ resultat2
...
Andet resultat
AFSLUT SAGEN;

Eksempel på SQL CASE-sætning

Lad os se på nogle eksempler på CASE-sætningen i SQL for at forstå den bedre.

Lad os lave en demo SQL-tabel, som vil blive brugt i eksempler.

Demo SQL-database

Vi vil bruge denne eksempel-SQL-tabel til vores eksempler på SQL CASE-sætning:

Kunde-ID Kundenavn Efternavn Land Alder Telefon
1 Tvivl Thakur Indien 23 xxxxxxxxxx
2 Sikker Chopra Australien 21 xxxxxxxxxx
3 Naveen Tulasi Sri Lanka 24 xxxxxxxxxx
4 Aditya Arpan Østrig 21 xxxxxxxxxx
5 Nishant. Salchichas S.A. Jain Spanien 22 xxxxxxxxxx

Du kan oprette den samme database i dit system ved at skrive følgende MySQL-forespørgsel:

 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');   

Eksempel 1: Simpelt CASE-udtryk

I dette eksempel bruger vi CASE-sætning

Forespørgsel:

 SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;  

Produktion:

Kundenavn Alder Nationalitet
Tvivl 23 indisk
Sikker 21 Udenlandsk
Naveen 24 Udenlandsk
Aditya 21 Udenlandsk
Nishant. Salchichas S.A. 22 Udenlandsk

Eksempel 2: SQL CASE When Multiple Conditions

Vi kan tilføje flere betingelser i CASE-sætningen ved at bruge flere NÅR klausuler.

Forespørgsel:

 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;  

Produktion:

Kundenavn Alder MængdeTekst
Tvivl 23 Alderen er over 22
Sikker 21 Alderen er 21
Naveen 24 Alderen er over 22
Aditya 21 Alderen er 21
Nishant. Salchichas S.A. 22 Alderen er over 30

Eksempel 3: CASE-erklæring med ORDER BY-klausul

Lad os tage Kundetabellen, som indeholder KundeID Kundenavn Efternavn Land Alder og telefonnummer. Vi kan kontrollere dataene i kundetabellen ved at bruge BESTIL EFTER klausul med CASE-erklæringen.

Forespørgsel:

 SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);  

Produktion:

Kundenavn Land
Sikker Australien
Aditya Østrig
Nishant. Salchichas S.A. Spanien
Naveen Sri Lanka
Tvivl Indien

Vigtige punkter om CASE-erklæring

  • SQL CASE-sætningen er et betinget udtryk, der gør det muligt at udføre forskellige forespørgsler baseret på specificerede betingelser.
  • Der skal altid være en VÆLGE i CASE-redegørelsen.
  • END ANDET er en valgfri komponent men HVORNÅR SÅ disse sager skal indgå i CASE-opgørelsen.
  • Vi kan lave enhver betinget erklæring ved at bruge en hvilken som helst betinget operatør (som HVOR ) mellem HVORNÅR og SÅ. Dette inkluderer at sammensætte flere betingede udsagn ved hjælp af OG og OR.
  • Vi kan inkludere flere WHEN-sætninger og en ELSE-sætning for at imødegå uadresserede forhold.

Konklusion

De CASE sætning giver en robust mekanisme til at inkorporere betinget logik i SQL-forespørgsler. Ved at bruge denne erklæring kan du håndtere forskellige forhold og tilpasse outputtet af dine forespørgsler effektivt. Forstå hvordan man implementerer CASE expressions giver dig mulighed for at udføre mere sofistikeret datamanipulation og rapportering, hvilket gør dine SQL-forespørgsler mere dynamiske og lydhøre over for forskellige scenarier.

Opret quiz