Instrucțiunea SQL CASE

The CASE declarație în SQL este o expresie condițională versatilă care ne permite să încorporăm logica conditionala direct în interogările noastre. Vă permite să returnați rezultate specifice pe baza anumitor condiții care să permită ieșiri dinamice de interogare. Fie că trebuie creați coloane noi modificați-le pe cele existente sau personalizați rezultatul interogărilor dvs Declarația CASE poate face față cu toate.

În acest articol vom învăța Instrucțiunea SQL CASE în detaliu, cu exemple clare și cazuri de utilizare care arată cum să utilizați această caracteristică pentru a vă îmbunătăți interogările SQL.

Declarație CASE în SQL

  • The CASE declarație în SQL este o expresie condiționată care vă permite să efectuați logica condiționată într-o interogare.
  • Este folosit în mod obișnuit pentru a crea coloane noi bazate pe logica condiționată, oferind valori personalizate sau controlând ieșirile de interogare pe baza anumitor condiții.
  • Dacă nicio condiție nu este adevărată, atunci ALTE parte va fi executată. Dacă nu există nicio parte ELSE, atunci revine NUL.

Sintaxă:

Pentru a utiliza instrucțiunea CASE în SQL, utilizați următoarea sintaxă:

CASE case_value
CÂND condiția THEN rezultat1
CÂND condiția THEN rezultat2
...
Altfel rezultat
SFÂRȘIT CAZ;

Exemplu de instrucțiune SQL CASE

Să ne uităm la câteva exemple de instrucțiune CASE în SQL pentru a o înțelege mai bine.

Să creăm un tabel SQL demonstrativ care va fi folosit în exemple.

Baza de date Demo SQL

Vom folosi acest exemplu de tabel SQL pentru exemplele noastre despre instrucțiunea SQL CASE:

ID client CustomerName Nume Ţară Vârstă Telefon
1 Îndoială Thakur India 23 xxxxxxxxxx
2 Seif Chopra Australia 21 xxxxxxxxxx
3 Naveen Tulasi Sri Lanka 24 xxxxxxxxxx
4 Aditya Arpan Austria 21 xxxxxxxxxx
5 Nishant. Salchichas S.A. Jain Spania 22 xxxxxxxxxx

Puteți crea aceeași bază de date în sistemul dvs. scriind următoarea interogare MySQL:

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

Exemplul 1: expresie CASE simplă

În acest exemplu folosim instrucțiunea CASE

Interogare:

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

Ieșire:

CustomerName Vârstă Naţionalitate
Îndoială 23 indian
Seif 21 Străină
Naveen 24 Străină
Aditya 21 Străină
Nishant. Salchichas S.A. 22 Străină

Exemplul 2: SQL CASE Când sunt mai multe condiții

Putem adăuga mai multe condiții în instrucțiunea CASE utilizând multiple CÂND clauze.

Interogare:

 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;  

Ieșire:

CustomerName Vârstă CantitateText
Îndoială 23 Vârsta este mai mare de 22 de ani
Seif 21 Vârsta este 21
Naveen 24 Vârsta este mai mare de 22 de ani
Aditya 21 Vârsta este 21
Nishant. Salchichas S.A. 22 Vârsta este peste 30 de ani

Exemplul 3: Instrucțiunea CASE cu clauza ORDER BY

Să luăm Tabelul Clienți care conține ID Client Nume Client Nume Țara Vârstă și Telefon. Putem verifica datele din tabelul Client folosind COMANDA PENTRU clauză cu instrucțiunea CASE.

Interogare:

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

Ieșire:

CustomerName Ţară
Seif Australia
Aditya Austria
Nishant. Salchichas S.A. Spania
Naveen Sri Lanka
Îndoială India

Puncte importante despre declarația CASE

  • Instrucțiunea SQL CASE este o expresie condiționată care permite executarea diferitelor interogări bazate pe condiții specificate.
  • Ar trebui să existe întotdeauna o SELECTA în declarația CASE.
  • END ELSE este o componentă opţională dar CÂND ATUNCI aceste cazuri trebuie incluse în declarația CASE.
  • Putem face orice declarație condiționată folosind orice operator condiționat (cum ar fi UNDE ) între CÂND și ATUNCI. Aceasta include înșirarea mai multor instrucțiuni condiționale folosind ŞI și SAU.
  • Putem include mai multe instrucțiuni WHEN și o instrucțiune ELSE pentru a contracara condițiile neadresate.

Concluzie

The CASE instrucțiunea oferă un mecanism robust pentru încorporarea logicii condiționate în interogările SQL. Folosind această declarație, puteți gestiona diverse condiții și puteți personaliza în mod eficient rezultatul interogărilor dvs. Înțelegerea modului de implementare CASE expressions vă permite să efectuați o manipulare și raportare a datelor mai sofisticate, făcând interogările dvs. SQL mai dinamice și mai receptive la diferite scenarii.

Creați un test