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
CASEdeclaraț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.