Come specificare condizioni NULL usando le istruzioni CASE in SQL

Quando si manipolano i dati in SQL, è importante eseguire operazioni specifiche sui valori NULL. Utilizzando le istruzioni CASE, è possibile specificare condizioni per i valori NULL, consentendo una manipolazione flessibile dei dati. Questo articolo spiega come gestire i valori NULL utilizzando le istruzioni CASE di SQL con esempi concreti.

Indice

Struttura di base delle istruzioni CASE

L’istruzione CASE è una struttura di controllo in SQL che può restituire risultati diversi in base a condizioni specificate. La sintassi di base è la seguente:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END

In questa sintassi, viene restituito il risultato result corrispondente quando ciascuna condizione condition è soddisfatta. Se nessuna delle condizioni è soddisfatta, viene restituito il risultato della clausola ELSE. Utilizzando le istruzioni CASE, è possibile implementare un branching condizionale complesso all’interno delle query SQL.

Come specificare i valori NULL

Per specificare i valori NULL come condizioni, utilizzare IS NULL nell’espressione condizionale. È importante distinguere i valori NULL poiché indicano l’assenza di dati specifici. La seguente sintassi dimostra come restituire un valore specifico quando la colonna column_name è NULL.

CASE
    WHEN column_name IS NULL THEN 'Value if NULL'
    ELSE column_name
END

In questa sintassi, se column_name è NULL, viene restituito 'Value if NULL', altrimenti viene restituito il valore di column_name così com’è. Questo metodo consente una gestione appropriata dei valori NULL.

Esempio 1: Impostazione di valori predefiniti per NULL

Ecco un esempio di impostazione di un indirizzo email predefinito quando l’indirizzo email di un cliente è NULL in un database clienti. Questa operazione aiuta a mantenere la coerenza dei dati.

SELECT
    customer_id,
    customer_name,
    CASE
        WHEN email IS NULL THEN 'default@example.com'
        ELSE email
    END AS email_address
FROM
    customers;

Questa query seleziona l’ID cliente, il nome del cliente e l’indirizzo email dalla tabella customers. Se l’indirizzo email è NULL, viene restituito 'default@example.com', e se non è NULL, viene restituito l’indirizzo email originale. Utilizzando questo metodo, è possibile impostare valori predefiniti coerenti per i valori NULL.

Esempio 2: Esecuzione di operazioni diverse in base ai valori NULL

Successivamente, vediamo un esempio di esecuzione di operazioni diverse in base ai valori NULL. Ad esempio, in un database di vendite, se l’importo delle vendite è NULL, viene visualizzato come “Non Inserito”; altrimenti, viene visualizzato l’importo delle vendite.

SELECT
    sale_id,
    product_name,
    CASE
        WHEN sale_amount IS NULL THEN 'Not Entered'
        ELSE CAST(sale_amount AS VARCHAR)
    END AS sale_status
FROM
    sales;

Questa query seleziona l’ID della vendita, il nome del prodotto e lo stato della vendita dalla tabella sales. Se l’importo della vendita sale_amount è NULL, viene visualizzato come “Non Inserito”, e se non è NULL, l’importo delle vendite viene visualizzato come stringa. Questo metodo consente una gestione appropriata dei valori NULL e migliora la leggibilità dei dati.

Conclusione

Abbiamo spiegato come gestire i valori NULL utilizzando le istruzioni CASE di SQL. Utilizzando IS NULL quando si specificano i valori NULL come condizioni, è possibile impostare valori predefiniti appropriati o eseguire operazioni diverse. Questo consente una manipolazione flessibile dei dati mantenendo la coerenza e la leggibilità dei dati. Sfruttando le istruzioni CASE nelle operazioni di database, è possibile migliorare le proprie competenze nella creazione di query più avanzate.

Indice