Declaració SQL CASE
El CASE declaració en SQL és una expressió condicional versàtil que ens permet incorporar lògica condicional directament a les nostres consultes. Us permet retornar resultats específics en funció de determinades condicions que permeten sortides de consultes dinàmiques. Tant si ho necessites crear columnes noves modificar els existents o personalitzar la sortida de les vostres consultes Declaració CASE pot gestionar-ho tot.
En aquest article aprendrem el Declaració SQL CASE detalladament amb exemples clars i casos d'ús que mostren com aprofitar aquesta funció per millorar les vostres consultes SQL.
Declaració CASE en SQL
- El
CASEdeclaració en SQL és una expressió condicional que us permet realitzar lògica condicional dins d'una consulta.
- S'utilitza habitualment per crear columnes noves basades en una lògica condicional per proporcionar valors personalitzats o controlar les sortides de consulta en funció de determinades condicions.
- Si cap condició és certa, aleshores ALTRES part s'executarà. Si no hi ha cap part ALTRA, torna NULL.
Sintaxi:
Per utilitzar la instrucció CASE a SQL, utilitzeu la sintaxi següent:
CASE case_value
QUAN condició LLAVORS resultat1
QUAN condició LLAVORS resultat2
...
Altrament resultat
FINAL DE CAS;
Exemple de declaració 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 | Segur | Chopra | Austràlia | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Àustria | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Espanya | 22 | xxxxxxxxxx |
Podeu crear la mateixa base de dades al vostre sistema escrivint la següent consulta 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 1: expressió CASE simple
En aquest exemple fem servir la instrucció CASE
Consulta:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Sortida:
| Nom del client | Edat | Nacionalitat |
|---|---|---|
| Dubte | 23 | indi |
| Segur | 21 | Estrangers |
| Naveen | 24 | Estrangers |
| Aditya | 21 | Estrangers |
| Nishant. Salchichas S.A. | 22 | Estrangers |
Exemple 2: SQL CAS Quan hi ha múltiples condicions
Podem afegir diverses condicions a la instrucció CASE utilitzant múltiples QUAN clàusules.
Consulta:
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;Sortida:
| Nom del client | Edat | QuantitatText |
|---|---|---|
| Dubte | 23 | L'edat és superior als 22 anys |
| Segur | 21 | L'edat és 21 |
| Naveen | 24 | L'edat és superior als 22 anys |
| Aditya | 21 | L'edat és 21 |
| Nishant. Salchichas S.A. | 22 | L'edat supera els 30 anys |
Exemple 3: Declaració CASE amb clàusula ORDER BY
Prenem la taula de clients que conté l'ID del client Nom del client Cognom País Edat i telèfon. Podem comprovar les dades de la taula de clients utilitzant el COMANDA 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:
| Nom del client | País |
|---|---|
| Segur | Austràlia |
| Aditya | Àustria |
| Nishant. Salchichas S.A. | Espanya |
| Naveen | Sri Lanka |
| Dubte | Índia |
Aspectes importants sobre la declaració CASE
- La instrucció 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 utilitzant I i OR.
- Podem incloure diverses declaracions WHEN i una instrucció ELSE per contrarestar condicions no abordades.
Conclusió
El CASE La sentència proporciona un mecanisme robust per incorporar la lògica condicional a les consultes SQL. Mitjançant aquesta declaració, podeu gestionar diverses condicions i personalitzar la sortida de les vostres consultes de manera eficaç. Comprendre com implementar CASE expressions us permet realitzar una manipulació de dades i informes més sofisticats, fent que les vostres consultes SQL siguin més dinàmiques i responsives a diferents escenaris.