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

Quiz maken