SQL CASE-instructie
De CASE verklaring in SQL is een veelzijdige voorwaardelijke uitdrukking die ons in staat stelt om op te nemen voorwaardelijke logica direct binnen onze vragen. Hiermee kunt u specifieke resultaten retourneren op basis van bepaalde voorwaarden, waardoor dynamische query-uitvoer mogelijk wordt gemaakt. Of dat nu nodig is nieuwe kolommen maken wijzig bestaande of pas de uitvoer van uw zoekopdrachten aan CASE-verklaring kan het allemaal aan.
In dit artikel leren we de SQL CASE-instructie gedetailleerd met duidelijke voorbeelden en gebruiksscenario's die laten zien hoe u deze functie kunt gebruiken om uw SQL-query's te verbeteren.
CASE-instructie in SQL
- De
CASEverklaring in SQL is een voorwaardelijke expressie waarmee u voorwaardelijke logica binnen een query kunt uitvoeren.
- Het wordt vaak gebruikt om nieuwe kolommen te maken op basis van voorwaardelijke logica, aangepaste waarden aan te bieden of query-uitvoer te controleren op basis van bepaalde voorwaarden.
- Als geen enkele voorwaarde waar is, dan wordt de ANDERS een deel zal worden uitgevoerd. Als er geen ANDERS deel is, keert het terug NUL.
Syntaxis:
Om de CASE-instructie in SQL te gebruiken, gebruikt u de volgende syntaxis:
CASE case_waarde
WANNEER voorwaarde DAN resultaat1
WANNEER voorwaarde DAN resultaat2
...
Anders resultaat
EINDGEVAL;
Voorbeeld van een SQL CASE-instructie
Laten we eens kijken naar enkele voorbeelden van de CASE-instructie in SQL om deze beter te begrijpen.
Laten we een demo-SQL-tabel maken die in voorbeelden zal worden gebruikt.
Demo SQL-database
We zullen deze voorbeeld-SQL-tabel gebruiken voor onze voorbeelden van de SQL CASE-instructie:
| KlantID | Klantnaam | Achternaam | Land | Leeftijd | Telefoon |
|---|---|---|---|---|---|
| 1 | Twijfel | Thakur | Indië | 23 | xxxxxxxxx |
| 2 | Veilig | Chopra | Australië | 21 | xxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxx |
| 4 | Aditya | Arpan | Oostenrijk | 21 | xxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jaïn | Spanje | 22 | xxxxxxxxx |
U kunt dezelfde database in uw systeem maken door de volgende MySQL-query te schrijven:
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');Voorbeeld 1: eenvoudige CASE-expressie
In dit voorbeeld gebruiken we de CASE-instructie
Vraag:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Uitgang:
| Klantnaam | Leeftijd | Nationaliteit |
|---|---|---|
| Twijfel | 23 | Indiaas |
| Veilig | 21 | Buitenlands |
| Naveen | 24 | Buitenlands |
| Aditya | 21 | Buitenlands |
| Nishant. Salchichas S.A. | 22 | Buitenlands |
Voorbeeld 2: SQL CASE bij meerdere voorwaarden
We kunnen meerdere voorwaarden toevoegen aan de CASE-instructie door meerdere te gebruiken WANNEER clausules.
Vraag:
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;Uitgang:
| Klantnaam | Leeftijd | HoeveelheidTekst |
|---|---|---|
| Twijfel | 23 | De leeftijd is groter dan 22 |
| Veilig | 21 | De leeftijd is 21 |
| Naveen | 24 | De leeftijd is groter dan 22 |
| Aditya | 21 | De leeftijd is 21 |
| Nishant. Salchichas S.A. | 22 | De leeftijd is ouder dan 30 |
Voorbeeld 3: CASE-instructie met ORDER BY-clausule
Laten we de klantentabel nemen die KlantID Klantnaam Achternaam Land Leeftijd en Telefoon bevat. We kunnen de gegevens van de klantentabel controleren met behulp van de BESTEL DOOR -clausule met de CASE-instructie.
Vraag:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Uitgang:
| Klantnaam | Land |
|---|---|
| Veilig | Australië |
| Aditya | Oostenrijk |
| Nishant. Salchichas S.A. | Spanje |
| Naveen | Sri Lanka |
| Twijfel | Indië |
Belangrijke punten over de CASE-verklaring
- De SQL CASE-instructie is een voorwaardelijke expressie waarmee verschillende query's kunnen worden uitgevoerd op basis van opgegeven voorwaarden.
- Er moet altijd een SELECTEER in de CASE-instructie.
- EINDE ANDERS is een optioneel onderdeel, maar WANNEER DAN deze gevallen moeten worden opgenomen in de CASE-instructie.
- We kunnen elke voorwaardelijke verklaring maken met behulp van elke voorwaardelijke operator (zoals WAAR ) tussen WANNEER en DAN. Dit omvat het aan elkaar rijgen van meerdere voorwaardelijke instructies met behulp van EN en OF.
- We kunnen meerdere WHEN-instructies en een ELSE-instructie opnemen om ongeadresseerde omstandigheden tegen te gaan.
Conclusie
De CASE statement biedt een robuust mechanisme voor het opnemen van voorwaardelijke logica in SQL-query's. Door deze verklaring te gebruiken, kunt u met verschillende omstandigheden omgaan en de uitvoer van uw zoekopdrachten effectief aanpassen. Begrijpen hoe te implementeren CASE Met expressies kunt u geavanceerdere gegevensmanipulatie en -rapportage uitvoeren, waardoor uw SQL-query's dynamischer worden en beter op verschillende scenario's kunnen reageren.