Aiuta lo sviluppo del sito, condividendo l'articolo con gli amici!

Introduzione a SQL COALESCE

COALESCE è una funzione SQL (Structured Query Language) predefinita che viene utilizzata per gestire i valori NULL nei record di dati. Valuta un insieme o un elenco di parametri di input in modo sequenziale e restituisce i primi valori non NULL tra di essi. La funzione COALESCE termina quando incontra il primo valore non NULL e lo restituisce. Se tutti gli argomenti nell'elenco di input sono valori NULL, la funzione restituirà NULL.

È una funzione generica supportata in tutti i database come MYSQL, SQL Server (a partire dal 2008), database SQL di Azure, PostgreSQL, Oracle, ecc.

Alcuni usi della funzione SQL COALESCE sono :

  • Gestione dei valori NULL
  • Esecuzione di due o più query come una singola query
  • Scorciatoia alternativa alle istruzioni CASE lunghe e dispendiose in termini di tempo

Sintassi e parametri

La sintassi di base per l'utilizzo della funzione COALESCE in SQL è la seguente:

SELEZIONARE COALESCE(valore_1, valore_2,valore_3,valore_4,… valore_n);

I parametri menzionati nella sintassi sopra sono :

COALESCE() : funzione SQL che restituisce il primo valore non nullo dall'elenco di input.

valore_1, valore_2,valore_3,valore_4,… valore_n : i valori di input che devono essere valutati.

Poiché la funzione COALESCE è di per sé un'espressione, può essere utilizzata in qualsiasi istruzione o clausola che accetti espressioni come SELECT, WHERE e HAVING.

La funzione COALESCE può essere considerata una versione specializzata dell'istruzione CASE in SQL.

La sintassi dell'istruzione CASE che mostra la funzione della funzione COALESCE è la seguente :

SELECT nome_colonna1,nome_colonna2, nome_colonna3,
CASO
QUANDO nome_colonna1 NON È NULLO allora nome_colonna1
QUANDO nome_colonna2 NON È NULL ALLORA nome_colonna2 ELSE NULL
FINE come 'case_name'
DA nome_tabella;

I parametri menzionati nella sintassi sopra sono :

Column_name1, column_name2: i valori delle colonne che devono essere unite, ovvero se i risultati di una di queste colonne risultano in valori NULL, verrà restituito il primo valore non NULL tra di loro. Ma se entrambi restituiscono NULL, CASE restituirà NULL.

Andando avanti discuteremo in dettaglio della funzione COALESCE sopra menzionata.

Per comprendere meglio il concetto, prenderemo l'aiuto del tavolo del dipendente (questo contiene i dati personali di tutti i dipendenti).

I dati nella tabella "dipendenti" sono i seguenti :

Esempi di SQL COALESCE

Ecco alcuni esempi per comprendere meglio SQL COALESCE.

Esempio 1

Query SQL per illustrare l'uso della semplice funzione COALESCE.

Codice:

SELECT COALESCE(NULL, NULL, NULL, 'EduCBA', NULL, NULL);

Uscita:

In questo esempio, possiamo vedere che la funzione COALESCE seleziona il primo valore non NULL, incontra e poi termina.

Esempio 2

Query SQL per trovare i primi valori non nulli dal nome e cognome di un dipendente.

Codice:

SELEZIONA ID dipendente,nome, cognome,
COALESCE(nome,cognome) come 'nome non nullo'
DA dipendenti;

Uscita:

In questo esempio, viene restituito il primo non NULL.

Esempio 3

Query SQL per illustrare la funzione COALESCE come un caso speciale di CASE.

Codice:

SELEZIONA ID dipendente,nome, cognome,
CASO
QUANDO il nome NON È NULLO ALLORA il nome
QUANDO il cognome NON È NULL ALLORA il cognome ELSE NULL
END come 'primo valore non nullo'
DA dipendenti;

Uscita:

Confronta i risultati di questa query e quelli della query nel terzo esempio. Possiamo vedere che entrambi producono lo stesso risultato. Questo perché la funzione COALESCE può essere considerata come un caso speciale di CASE.

Esempio 4

Query SQL per illustrare l'uso della funzione COALESCE su valori con diversi tipi di dati.

Codice:

SELEZIONA ID dipendente,nome, cognome,
COALESCE(employeeid,firstname,lastname) as 'first not null name'
DA dipendenti;

Uscita:

Nell'esempio sopra, possiamo vedere che l'ID dipendente non può essere bastonato con i valori dei dati di nome e cognome poiché hanno tipi di dati diversi.

Per risolvere questo problema, possiamo cambiare il tipo di dati di employeeid usando la funzione CONVERT come mostrato di seguito.

Codice:

SELEZIONA ID dipendente,nome, cognome,
COALESCE(CONVERT(varchar(50),employeeid),firstname, lastname) as 'first not null values'
DA dipendenti;

Uscita:

Esempio 5

Una query SQL complessa per illustrare l'uso della funzione COALESCE.

Supponiamo di voler conoscere gli stipendi di tutti i dipendenti dell'azienda. Ma nella tabella dei dipendenti, possiamo vedere che gli stipendi di tutti i dipendenti non sono stati menzionati. Tuttavia, sono state menzionate le tariffe orarie e le commissioni dei dipendenti con campi salariali mancanti. Possiamo usarlo per confrontare gli stipendi dei dipendenti nel modo seguente.

Codice:

SELECT COALESCE(CONVERT(varchar(50),employeeid),firstname,lastname) as 'Employee Identifier',
COALESCE(salario,tariffa_oraria830 + COALESCE(commissione,0))come 'Compensazione'
DA dipendenti
ORDINA PER 2 DESC;

Uscita:

Utilizzando la prima funzione COALESCE, abbiamo cercato di identificare un dipendente unendo ID, nome e cognome e poi utilizzando la seconda funzione COALESCE, abbiamo provato a selezionare lo stipendio o la retribuzione calcolata.

Conclusione

La funzione SQL COALESCE è una funzione incorporata in database come SQL Server, Azure e così via che restituisce il primo valore non NULL da un elenco di argomenti di input. È molto utile nella gestione di valori null e offre un' alternativa rapida e semplice alle istruzioni SQL CASE.

Aiuta lo sviluppo del sito, condividendo l'articolo con gli amici!