Istruzione SQL CASE
IL CASE dichiarazione in SQL è un'espressione condizionale versatile che ci consente di incorporare logica condizionale direttamente all'interno delle nostre query. Ti consente di restituire risultati specifici in base a determinate condizioni abilitando output di query dinamiche. Se ne hai bisogno creare nuove colonne modificare quelli esistenti o personalizzare l'output delle tue query Dichiarazione CASO può gestire tutto.
In questo articolo impareremo il Istruzione SQL CASE in dettaglio con esempi chiari e casi d'uso che mostrano come sfruttare questa funzionalità per migliorare le query SQL.
Dichiarazione CASE in SQL
- IL
CASEdichiarazione in SQL è un'espressione condizionale che consente di eseguire la logica condizionale all'interno di una query.
- Viene comunemente utilizzato per creare nuove colonne basate sulla logica condizionale, fornire valori personalizzati o controllare gli output delle query in base a determinate condizioni.
- Se nessuna condizione è vera allora il ALTRO parte verrà eseguita. Se non è presente alcuna parte ELSE, ritorna NULL.
Sintassi:
Per utilizzare l'istruzione CASE in SQL utilizzare la seguente sintassi:
CASE valore_caso
QUANDO condizione THEN risultato1
QUANDO condizione THEN risultato2
...
Altro risultato
CASO FINE;
Esempio di istruzione SQL CASE
Diamo un'occhiata ad alcuni esempi dell'istruzione CASE in SQL per capirla meglio.
Creiamo una tabella SQL dimostrativa che verrà utilizzata negli esempi.
Database SQL dimostrativo
Utilizzeremo questa tabella SQL di esempio per i nostri esempi sull'istruzione SQL CASE:
| ID cliente | NomeCliente | Cognome | Paese | Età | Telefono |
|---|---|---|---|---|---|
| 1 | Dubbio | Thakur | India | 23 | xxxxxxxxxx |
| 2 | Sicuro | Chopra | Australia | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Austria | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Giain | Spagna | 22 | xxxxxxxxxx |
Puoi creare lo stesso database nel tuo sistema scrivendo la seguente query 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');Esempio 1: semplice espressione CASE
In questo esempio utilizziamo l'istruzione CASE
Domanda:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Produzione:
| NomeCliente | Età | Nazionalità |
|---|---|---|
| Dubbio | 23 | indiano |
| Sicuro | 21 | Straniero |
| Naveen | 24 | Straniero |
| Aditya | 21 | Straniero |
| Nishant. Salchichas S.A. | 22 | Straniero |
Esempio 2: SQL CASE quando sono presenti più condizioni
Possiamo aggiungere più condizioni nell'istruzione CASE utilizzando multiple QUANDO clausole.
Domanda:
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;Produzione:
| NomeCliente | Età | QuantitàTesto |
|---|---|---|
| Dubbio | 23 | L'età è maggiore di 22 anni |
| Sicuro | 21 | L'età è 21 anni |
| Naveen | 24 | L'età è maggiore di 22 anni |
| Aditya | 21 | L'età è 21 anni |
| Nishant. Salchichas S.A. | 22 | L'età è superiore ai 30 anni |
Esempio 3: istruzione CASE con clausola ORDER BY
Prendiamo la tabella Customer che contiene CustomerID CustomerName LastName Country Age e Phone. Possiamo controllare i dati della tabella Customer utilizzando il comando ORDINA PER clausola con l'istruzione CASE.
Domanda:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Produzione:
| NomeCliente | Paese |
|---|---|
| Sicuro | Australia |
| Aditya | Austria |
| Nishant. Salchichas S.A. | Spagna |
| Naveen | Sri Lanka |
| Dubbio | India |
Punti importanti sulla dichiarazione CASE
- L'istruzione SQL CASE è un'espressione condizionale che consente l'esecuzione di query diverse in base a condizioni specificate.
- Dovrebbe esserci sempre un SELEZIONARE nella dichiarazione CASE.
- FINE ALTRO è un componente opzionale ma QUANDO POI questi casi devono essere inclusi nella dichiarazione CASE.
- Possiamo fare qualsiasi istruzione condizionale utilizzando qualsiasi operatore condizionale (come DOVE ) tra QUANDO e ALLORA. Ciò include l'unione di più istruzioni condizionali utilizzando E e O.
- Possiamo includere più istruzioni WHEN e un'istruzione ELSE per contrastare condizioni non indirizzate.
Conclusione
IL CASE fornisce un meccanismo affidabile per incorporare la logica condizionale nelle query SQL. Utilizzando questa istruzione puoi gestire varie condizioni e personalizzare l'output delle tue query in modo efficace. Capire come implementare CASE Le espressioni consentono di eseguire manipolazioni e reporting dei dati più sofisticati, rendendo le query SQL più dinamiche e reattive a diversi scenari.