Declaració SQL CASE és una expressió condicional que permet als usuaris executar diferents accions basades en diferents condicions. És similar a la lògica if-else en altres llenguatges de programació.
Declaració CASE en SQL
L'expressió CASE en SQL passa per totes les condicions i s'atura quan es compleix qualsevol condició. No verifica si hi ha altres condicions després que una condició hagi retornat cert i retorna resultats basats en aquesta condició.
vb i vb net
Si cap condició és certa, s'executarà la part ELSE. Si no hi ha cap part ALTRA, torna NUL.
Sintaxi
Per utilitzar la instrucció CASE a SQL, utilitzeu la sintaxi següent:
CAIXA cas_valor
QUAN condició LLAVORS resultat 1
QUAN condició LLAVORS resultat 2
…
Altrament resultat
FINAL CAIXA;
Exemple SQL CASE
Vegem alguns exemples de la instrucció CASE en SQL per entendre-la millor.
Creem una taula SQL de demostració, que s'utilitzarà en exemples.
Demostració de base de dades SQL
Utilitzarem aquesta taula SQL d'exemple per als nostres exemples sobre la instrucció SQL CASE:
| ID de client | Nom del client | Cognom | País | Edat | Telèfon |
|---|---|---|---|---|---|
| 1 | Dubte | Thakur | Índia | 23 | xxxxxxxxxx |
| 2 | Caixa forta | Chopra | Austràlia | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Àustria | 21 | xxxxxxxxxx |
| 5 | Nishant. Salsitxes S.A. | Jain | Espanya | 22 | xxxxxxxxxx |
Podeu crear la mateixa base de dades al vostre sistema escrivint la següent consulta MySQL:
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');>
Exemple d'expressió CASE
En aquest exemple, utilitzem la instrucció CASE
comparació de cadena c#
Consulta:
SELECT CustomerName, Age , CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;>
SQL CAS Quan Exemple de condicions múltiples
Podem afegir diverses condicions a la instrucció CASE utilitzant múltiples QUAN clàusules.
Consulta:
SELECT CustomerName, Age, CASE WHEN Age>22 LLAVORS 'L'edat és més gran que 22' QUAN Edat = 21 LLAVORS 'L'edat és 21' ALTRES 'L'edat és més de 30' ACABA COM QuantityText FROM Client;>
Sortida:

Sortida
Declaració CASE amb exemple de clàusula ORDER BY
Prenem la taula de clients que conté CustomerID, CustomerName, LastName, Country, Ege i Phone. Podem comprovar les dades de la taula de clients utilitzant el DEMANAT PER clàusula amb la instrucció CASE.
Consulta:
SELECT CustomerName, Country FROM Customer ORDER BY ( CASE WHEN Country IS 'India' THEN Country ELSE Age END );>
Sortida:

Declaració CASE amb la clàusula ORDER BY Exemple de sortida
Aspectes importants sobre la declaració CASE
- La sentència SQL CASE és una expressió condicional que permet l'execució de diferents consultes basades en condicions especificades.
- Sempre hi hauria d'haver un SELECCIONA a la declaració CASE.
- END ELSE és un component opcional però QUAN LLAVORS aquests casos s'han d'incloure a la declaració CASE.
- Podem fer qualsevol declaració condicional utilitzant qualsevol operador condicional (com ara ON ) entre QUAN i LLAVORS. Això inclou encadenar diverses declaracions condicionals mitjançant AND i OR.
- Podem incloure diverses declaracions WHEN i una declaració ELSE per contrarestar condicions no abordades.