SQL COALESCE(): come determinare valori che non sono NULL
La funzione SQL COALESCE() è usata per determinare il primo valore di una lista che non è NULL. È pertanto una versione ridotta di una relativa istruzione CASE.
Cos’è SQL COALESCE()?
In SQL la parola chiave NULL rappresenta i dati che non hanno un valore. Ad esempio, quando non si conosce (ancora) un determinato valore in una tabella e quindi non si compila il relativo campo. Non significa necessariamente che il campo non abbia un valore, ma semplicemente che non è noto. A prima vista questi valori NULL non fanno nulla di male, ma possono rendere un database poco chiaro. La funzione SQL COALESCE() è quindi utilizzata per restituire il primo valore non NULL di una lista.
- Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
- Storage SSD NVMe veloce
- Plesk Web Host Edition incluso
Sintassi e prerequisiti
La sintassi di SQL COALESCE() è piuttosto semplice. Si presenta come segue:
Servono almeno due argomenti. Se tutti gli argomenti hanno il valore NULL, anche alla fine viene restituito NULL.
Esempio di funzionamento
Ti illustriamo il funzionamento di base ricorrendo a un semplice esempio. Nel codice seguente inseriamo diversi argomenti e li controlliamo con il comando SQL SELECT.
In questo caso l’output è “17”, perché è il primo valore che non è NULL.
La funzione in combinazione
La funzione è molto più utile se viene eseguita in combinazione con altre azioni. Prendiamo una tabella chiamata “Collaboratori” che contiene le colonne “Nome”, “Residenza” e “Data di nascita”. Si presenta come segue:
Nome | Residenza | Data di nascita |
---|---|---|
Pietro Mancini | Napoli | 10.04.1967 |
Sabina Rossi | Napoli | 27.07.1989 |
Sebastiano Russo | Bolzano | |
Marco Innocenti | Napoli | 14.04.2001 |
Sara Verdi | 02.12.2005 |
Qui mancano due voci. Sicuramente Sebastiano Russo ha una data di nascita e Sara Verdi ha una residenza, ma al momento non conosciamo queste informazioni. Se vogliamo indicare la mancanza di questi dati possiamo usare la funzione SQL COALESCE(). Di seguito il codice:
L’output corrispondente si presenta come segue:
Nome | Residenza | Data di nascita |
---|---|---|
Pietro Mancini | Napoli | 10.04.1967 |
Sabina Rossi | Napoli | 27.07.1989 |
Sebastiano Russo | Bolzano | CHIEDERE |
Marco Innocenti | Napoli | 14.04.2001 |
Sara Verdi | CHIEDERE | 02.12.2005 |
Funzioni simili a SQL COALESCE()
SQL COALESCE() presenta sovrapposizioni con un’istruzione CASE ed è soltanto una versione abbreviata di questa opzione di interrogazione. Il codice CASE si presenterebbe come segue:
Anche la funzione ISNULL è simile a SQL COALESCE(). A differenza della funzione trattata qui, ISNULL viene valutata solo una volta e non segue a sua volta le regole di CASE.
Un server proprio come lo vuoi tu: con l’hosting SQL Server di IONOS utilizzi MSSQL, MySQL o MariaDB e puoi contare su una consulenza personalizzata, solidi meccanismi di sicurezza e prestazioni eccezionali.