Mysql
 sql >> Database >  >> RDS >> Mysql

Come usare Coalesce in MySQL

Coalesce è un'utile funzione MySQL che restituisce automaticamente il primo valore non nullo da un elenco di valori. Questi valori possono essere forniti utilizzando valori letterali, nomi di colonna o altre funzioni MySQL. In questo articolo, vedremo come utilizzare Coalesce in MySQL.


Come utilizzare Coalesce in MySQL

Ecco i passaggi per utilizzare COALSCE in MySQL


Cos'è COALESCE in MySQL

La funzione COALESCE restituisce il primo valore non NULL da un elenco di valori. Se tutti i valori nell'elenco sono NULL, restituisce NULL. Ecco la sintassi della funzione Coalesce in MySQL.

select coalesce(value1, value2, ..., valuen) 
from table_name;

Nell'istruzione precedente, devi specificare il nome della tabella e fornire un elenco di valori separati da virgole.

Ecco un paio di semplici esempi per mostrare la funzionalità di COALESCE.

mysql> select coalesce(NULL, 2, 3);
+----------------------+
| coalesce(NULL, 2, 3) |
+----------------------+
|                    2 |
+----------------------+

mysql> select coalesce(NULL, NULL);
+----------------------+
| coalesce(NULL, NULL) |
+----------------------+
|                 NULL |
+----------------------+


Perché COALESCE viene utilizzato in MySQL

COALESCE è usato in MySQL per sostituire i valori nulli con qualche altra stringa a tua scelta. Questo è molto utile per i rapporti e le analisi in cui non desideri modificare i dati effettivi ma devi segnalarli in un modo diverso.

Supponiamo che tu abbia la seguente tabella vendite(id, prodotto, data_ordine, importo) che contiene valori nulli.

mysql> create table sales(id int, 
        product varchar(5),
        order_date date, 
        amount int);

mysql> insert into sales(id, product, order_date, amount)
       values(null, 'A','2020-01-01',150),
       (2, null,'2020-01-01',150),
       (null, 'C',null,150),
       (4, 'D','2020-01-01',null);

mysql> select * from sales;
+------+---------+------------+--------+
| id   | product | order_date | amount |
+------+---------+------------+--------+
| NULL | A       | 2020-01-01 |    150 |
|    2 | NULL    | 2020-01-01 |    150 |
| NULL | C       | NULL       |    150 |
|    4 | D       | 2020-01-01 |   NULL |
+------+---------+------------+--------+

Ora useremo COALESCE per ottenere il primo valore non nullo da ogni riga.

mysql> select coalesce(id, product, order_date, amount) from sales;
+-------------------------------------------+
| coalesce(id, product, order_date, amount) |
+-------------------------------------------+
| A                                         |
| 2                                         |
| C                                         |
| 4                                         |
+-------------------------------------------+

Come puoi vedere, COALESCE restituisce valori non nulli da ogni riga.

È inoltre possibile utilizzare la funzione COALESCE per sostituire i valori null con stringhe personalizzate. Nell'esempio seguente, sostituiremo ogni valore nullo con la stringa "NA" utilizzando COALESCE.

mysql> select coalesce(id, 'NA') id, 
       coalesce(product,'NA') product, 
       coalesce(order_date,'NA') order_date, 
       coalesce(amount,'NA') amount 
       from sales;
 +------+---------+------------+--------+
 | id   | product | order_date | amount |
 +------+---------+------------+--------+
 | NA   | A       | 2020-01-01 | 150    |
 | 2    | NA      | 2020-01-01 | 150    |
 | NA   | C       | NA         | 150    |
 | 4    | D       | 2020-01-01 | NA     |
 +------+---------+------------+--------+


COALESCE vs IFNULL MySQL

Sebbene IFNULL possa essere utilizzato anche per sostituire valori NULL, può accettare solo 2 argomenti, restituisce il primo argomento se è nullo, altrimenti restituisce il secondo argomento. COALESCE funziona con qualsiasi numero di argomenti, non solo con due.


COALESCE in Ubiq

Lo strumento Ubiq Reporting supporta tutte le query SQL di cui sopra e semplifica la visualizzazione dei risultati SQL in diversi modi. Ecco la query SQL COALESCE menzionata sopra, in Ubiq.

Hai bisogno di uno strumento di reporting per MySQL? Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!