SQL CASE-erklæring
De CASE uttalelse i SQL er et allsidig betinget uttrykk som gjør oss i stand til å innlemme betinget logikk direkte i våre spørsmål. Den lar deg returnere spesifikke resultater basert på visse forhold som muliggjør dynamiske spørringsutganger. Enten du trenger det opprette nye kolonner endre eksisterende eller tilpasse utdataene til dine søk CASE-uttalelse kan klare alt.
I denne artikkelen lærer vi SQL CASE-setning i detalj med klare eksempler og brukstilfeller som viser hvordan du kan utnytte denne funksjonen for å forbedre SQL-spørringene dine.
CASE-setning i SQL
- De
CASEuttalelse i SQL er et betinget uttrykk som lar deg utføre betinget logikk i en spørring.
- Det er ofte brukt til å lage nye kolonner basert på betinget logikk som gir tilpassede verdier eller kontrollerer spørringsutdata basert på visse forhold.
- Hvis ingen betingelse er sann, er det ELLERS del vil bli utført. Hvis det ikke er noen ANDRE del, kommer den tilbake NULL.
Syntaks:
For å bruke CASE Statement i SQL, bruk følgende syntaks:
CASE case_value
NÅR tilstand SÅ resultat1
NÅR tilstand SÅ resultat2
...
Annet resultat
AVSLUTT SAKEN;
Eksempel på SQL CASE-setning
La oss se på noen eksempler på CASE-setningen i SQL for å forstå den bedre.
La oss lage en demo SQL-tabell som vil bli brukt i eksempler.
Demo SQL-database
Vi vil bruke denne eksempel-SQL-tabellen for våre eksempler på SQL CASE-setning:
| Kunde-ID | Kundenavn | Etternavn | Land | Alder | Telefon |
|---|---|---|---|---|---|
| 1 | Tvil | Thakur | India | 23 | xxxxxxxxxx |
| 2 | Sikker | Chopra | Australia | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Østerrike | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Spania | 22 | xxxxxxxxxx |
Du kan opprette den samme databasen i systemet ditt ved å skrive følgende MySQL-spørring:
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: Enkelt CASE-uttrykk
I dette eksemplet bruker vi CASE-setningen
Spørsmål:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Produksjon:
| Kundenavn | Alder | Nasjonalitet |
|---|---|---|
| Tvil | 23 | indisk |
| Sikker | 21 | Fremmed |
| Naveen | 24 | Fremmed |
| Aditya | 21 | Fremmed |
| Nishant. Salchichas S.A. | 22 | Fremmed |
Eksempel 2: SQL CASE When Multiple Conditions
Vi kan legge til flere betingelser i CASE-setningen ved å bruke flere NÅR klausuler.
Spørsmål:
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;Produksjon:
| Kundenavn | Alder | MengdeTekst |
|---|---|---|
| Tvil | 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-uttalelse med ORDER BY-klausul
La oss ta Kundetabellen som inneholder KundeID Kundenavn Etternavn Land Alder og telefonnummer. Vi kan sjekke dataene i kundetabellen ved å bruke BESTILL PÅ klausul med CASE-setningen.
Spørsmål:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Produksjon:
| Kundenavn | Land |
|---|---|
| Sikker | Australia |
| Aditya | Østerrike |
| Nishant. Salchichas S.A. | Spania |
| Naveen | Sri Lanka |
| Tvil | India |
Viktige punkter om CASE-erklæring
- SQL CASE-setningen er et betinget uttrykk som gjør det mulig å utføre forskjellige spørringer basert på spesifiserte forhold.
- Det skal alltid være en VELGE i CASE-uttalelsen.
- END ELSE er en valgfri komponent men NÅR SÅ disse sakene skal inkluderes i CASE-uttalelsen.
- Vi kan lage en hvilken som helst betinget erklæring ved å bruke en hvilken som helst betinget operatør (som HVOR ) mellom NÅR og DA. Dette inkluderer å sette sammen flere betingede setninger ved å bruke OG og OR.
- Vi kan inkludere flere WHEN-setninger og en ELSE-setning for å motvirke uadresserte forhold.
Konklusjon
De CASE statement gir en robust mekanisme for å inkorporere betinget logikk i SQL-spørringer. Ved å bruke denne setningen kan du håndtere ulike forhold og tilpasse utdataene til spørringene dine effektivt. Forstå hvordan man implementerer CASE uttrykk lar deg utføre mer sofistikert datamanipulering og rapportering, noe som gjør SQL-spørringene dine mer dynamiske og responsive på forskjellige scenarier.