Logo Wand.Tools

Generatore di CASE SQL

Usa l'AI per generare istruzioni CASE per logica condizionale in SQL

Tutorial SQL CASE

Tutorial SQL CASE

L’istruzione SQL CASE viene utilizzata per implementare la logica condizionale nelle query SQL. Ti permette di eseguire diverse azioni in base a condizioni specifiche. Questo tutorial ti guiderà attraverso la sintassi e l’uso dell’istruzione CASE con esempi pratici.

Sintassi

La sintassi di base dell’istruzione CASE è la seguente:

CASE
    WHEN condizione1 THEN risultato1
    WHEN condizione2 THEN risultato2
    ...
    ELSE risultato_predefinito
END
  • condizione1, condizione2, …: Queste sono le condizioni valutate in ordine.
  • risultato1, risultato2, …: Il risultato restituito se la condizione corrispondente è vera.
  • risultato_predefinito: Il risultato restituito se nessuna delle condizioni è vera (opzionale).

Esempio 1: CASE semplice

Supponiamo di avere una tabella employees con le colonne id, name e salary. Vuoi categorizzare i dipendenti in base al loro stipendio:

SELECT 
    name,
    salary,
    CASE
        WHEN salary > 100000 THEN 'Alto'
        WHEN salary BETWEEN 50000 AND 100000 THEN 'Medio'
        ELSE 'Basso'
    END AS salary_category
FROM employees;

Questa query restituirà il nome, lo stipendio e una nuova colonna salary_category che categorizza lo stipendio di ciascun dipendente come ‘Alto’, ‘Medio’ o ‘Basso’.

Esempio 2: CASE in ORDER BY

Puoi anche usare l’istruzione CASE nella clausola ORDER BY per ordinare i risultati in base a una logica condizionale:

SELECT 
    name,
    salary
FROM employees
ORDER BY 
    CASE
        WHEN salary > 100000 THEN 1
        WHEN salary BETWEEN 50000 AND 100000 THEN 2
        ELSE 3
    END;

Questa query ordinerà prima i dipendenti con stipendi alti, seguiti da quelli con stipendi medi e bassi.

Esempio 3: CASE in UPDATE

L’istruzione CASE può anche essere utilizzata in un’istruzione UPDATE per aggiornare i record in modo condizionale:

UPDATE employees
SET salary = 
    CASE
        WHEN salary < 50000 THEN salary * 1.1
        WHEN salary BETWEEN 50000 AND 100000 THEN salary * 1.05
        ELSE salary
    END;

Questa query aumenterà lo stipendio dei dipendenti del 10% se il loro stipendio è inferiore a 50.000, del 5% se il loro stipendio è compreso tra 50.000 e 100.000, e lo lascerà invariato altrimenti.

Conclusione

L’istruzione SQL CASE è uno strumento potente per implementare la logica condizionale nelle tue query. Può essere utilizzata nelle clausole SELECT, UPDATE, ORDER BY e altre per rendere le tue query SQL più flessibili e dinamiche. Esercitati con l’uso dell’istruzione CASE in diversi scenari per comprenderne appieno il potenziale.