SQL COALESCE Function e NULL

Sapere quando utilizzare la funzione SQL COALESCE è un salvavita quando si ha a che fare con NULL.

Come sai, NULL è un concetto complicato, e sembra che mai NULL “tocchi” in un’espressione, rende il risultato NULLO. Quindi, quando hai a che fare con NULL, come puoi uscire dal ciclo? Cioè, come puoi visualizzare un altro valore invece?

Questo è dove SQL COALESCE entra in gioco. Con questa funzione è possibile verificare NULL e, quando presente, sostituire NULL per un altro valore.

Che cos’è COALESCE?,

COALESCE è una funzione SqlServer integrata. Utilizzare COALESCE quando è necessario sostituire un NULL con un altro valore. Assume la forma:

COALESCE(value1, value2, ..., valuen)

Restituisce il primo non NULL dall’elenco dei valori.

Considera i parchi di baseball dal database di baseball di Lahmans., Se si desidera visualizzare il parkname in luogo del parkalias, che può essere null, COALESCE funziona bene qui:

SELEZIONARE la funzione COALESCE(parkalias, parkname) come ParkAlias, città, stateFROM Parchi
-- AnswerSELECT COALESCE(parkalias, parkname) as ParkAlias, city, stateFROM Parks

In questo esempio la funzione COALESCE(parkalias, parkname) restituisce il valore trovato in parkalias se il valore non NULL; tuttavia, se è NULL, quindi parkname viene restituito.

Quale SQL scriveresti se volessi visualizzare ‘Unknown’ se le parkalias sono NULLE?, Perché non provare a scrivere la query here ecco un inizio<

Confrontando SQL COALESCE al CASO

Sapevi che SQL COALESCE è una scorciatoia per l’istruzione CASE?

Considera il sondaggio della tabella, che ha le colonne answerID, option1, option2, option3.

Vogliamo elencare il answerID e la prima opzione non NULL.

Da quello che abbiamo imparato possiamo usare COALESCE come:

SELECT answerID,
COALESCE(option1, option2, option3, 'No Option Selected')
FROM survey

Questa è una scorciatoia per questa istruzione CASE:

SELECT answerID,
CASE
WHEN option1 is not NULL then option1
WHEN option2 is not NULL then option2
WHEN option3 is not NULL then option3
ELSE 'No Option Selected'
END
FROM survey

CASE viene utilizzato in più circostanze, ma quando si sostituisce NULL, COALESCE è una comoda scorciatoia!,

Per la cronaca, SQL Server ha molte funzioni più interessanti da imparare ed esplorare. Se non l’hai già fatto, dai un’occhiata a queste funzioni di stringa per manipolare i dati di testo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Vai alla barra degli strumenti