SQL CASE-sats
De CASE uttalande i SQL är ett mångsidigt villkorligt uttryck som gör det möjligt för oss att införliva villkorlig logik direkt i våra frågor. Det låter dig returnera specifika resultat baserat på vissa villkor som möjliggör dynamiska frågeutgångar. Oavsett om du behöver skapa nya kolumner ändra befintliga eller anpassa resultatet av dina frågor CASE uttalande klarar allt.
I den här artikeln kommer vi att lära oss SQL CASE-sats i detalj med tydliga exempel och användningsfall som visar hur du kan utnyttja den här funktionen för att förbättra dina SQL-frågor.
CASE-sats i SQL
- De
CASEuttalande i SQL är ett villkorligt uttryck som låter dig utföra villkorlig logik i en fråga.
- Det används ofta för att skapa nya kolumner baserade på villkorlig logik som tillhandahåller anpassade värden eller kontrollerar frågeutgångar baserat på vissa villkor.
- Om inget villkor är sant så är det ANNAN del kommer att utföras. Om det inte finns någon annan del kommer den tillbaka NULL.
Syntax:
Använd följande syntax för att använda CASE-satsen i SQL:
CASE case_value
NÄR tillstånd DÅ resultat1
NÄR tillstånd DÅ resultat2
...
Annat resultat
SLUT FALL;
Exempel på SQL CASE-sats
Låt oss titta på några exempel på CASE-satsen i SQL för att förstå den bättre.
Låt oss skapa en demo SQL-tabell som kommer att användas i exempel.
Demo SQL-databas
Vi kommer att använda denna exempel-SQL-tabell för våra exempel på SQL CASE-sats:
| Kund-ID | Kundnamn | Efternamn | Land | Åldras | Telefon |
|---|---|---|---|---|---|
| 1 | Tvivel | Thakur | Indien | 23 | xxxxxxxxxx |
| 2 | Säker | Chopra | Australien | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Österrike | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Spanien | 22 | xxxxxxxxxx |
Du kan skapa samma databas i ditt system genom att skriva följande MySQL-fråga:
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');Exempel 1: Enkelt CASE-uttryck
I det här exemplet använder vi CASE-satsen
Fråga:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Produktion:
| Kundnamn | Åldras | Nationalitet |
|---|---|---|
| Tvivel | 23 | indiska |
| Säker | 21 | Utländsk |
| Naveen | 24 | Utländsk |
| Aditya | 21 | Utländsk |
| Nishant. Salchichas S.A. | 22 | Utländsk |
Exempel 2: SQL CASE När flera villkor
Vi kan lägga till flera villkor i CASE-satsen genom att använda flera NÄR klausuler.
Fråga:
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:
| Kundnamn | Åldras | KvantitetText |
|---|---|---|
| Tvivel | 23 | Åldern är över 22 |
| Säker | 21 | Åldern är 21 |
| Naveen | 24 | Åldern är över 22 |
| Aditya | 21 | Åldern är 21 |
| Nishant. Salchichas S.A. | 22 | Åldern är över 30 |
Exempel 3: CASE Statement med ORDER BY-klausul
Låt oss ta Kundtabellen som innehåller Kund-ID Kundnamn Efternamn Land Ålder och telefonnummer. Vi kan kontrollera uppgifterna i kundtabellen genom att använda BESTÄLL AV klausul med CASE-satsen.
Fråga:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Produktion:
| Kundnamn | Land |
|---|---|
| Säker | Australien |
| Aditya | Österrike |
| Nishant. Salchichas S.A. | Spanien |
| Naveen | Sri lanka |
| Tvivel | Indien |
Viktiga punkter om CASE Statement
- SQL CASE-satsen är ett villkorligt uttryck som tillåter exekvering av olika frågor baserat på angivna villkor.
- Det ska alltid finnas en VÄLJA i CASE-utlåtandet.
- END ELSE är en valfri komponent men NÄR DÅ dessa fall måste ingå i CASE-utlåtandet.
- Vi kan göra vilket villkorligt uttalande som helst med vilken villkorlig operator som helst (som DÄR ) mellan NÄR och DÅ. Detta inkluderar att stränga ihop flera villkorliga uttalanden med hjälp av OCH och OR.
- Vi kan inkludera flera WHEN-satser och en ELSE-sats för att motverka med oadresserade villkor.
Slutsats
De CASE satsen tillhandahåller en robust mekanism för att införliva villkorlig logik i SQL-frågor. Genom att använda detta uttalande kan du hantera olika förhållanden och anpassa resultatet av dina frågor effektivt. Förstå hur man implementerar CASE expressions låter dig utföra mer sofistikerad datamanipulation och rapportering, vilket gör dina SQL-frågor mer dynamiska och lyhörda för olika scenarier.