Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verwenden Sie Coalesce in MySQL

Coalesce ist eine nützliche MySQL-Funktion, die automatisch den ersten Nicht-Null-Wert aus einer Liste von Werten zurückgibt. Diese Werte können mithilfe von Literalen, Spaltennamen oder anderen MySQL-Funktionen bereitgestellt werden. In diesem Artikel sehen wir uns an, wie Coalesce in MySQL verwendet wird.


Verwendung von Coalesce in MySQL

Hier sind die Schritte zur Verwendung von COALSCE in MySQL


Was ist COALESCE in MySQL

Die COALESCE-Funktion gibt den ersten Nicht-NULL-Wert aus einer Werteliste zurück. Wenn alle Werte in der Liste NULL sind, wird NULL zurückgegeben. Hier ist die Syntax der Coalesce-Funktion in MySQL.

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

In der obigen Anweisung müssen Sie den Tabellennamen angeben und eine Liste von durch Kommas getrennten Werten bereitstellen.

Hier sind ein paar einfache Beispiele, um die Funktionalität von COALESCE zu zeigen.

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

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


Warum COALESCE in MySQL verwendet wird

COALESCE wird in MySQL verwendet, um Nullwerte durch eine andere Zeichenfolge Ihrer Wahl zu ersetzen. Dies ist sehr nützlich für Berichte und Analysen, bei denen Sie die tatsächlichen Daten nicht ändern möchten, sie aber auf andere Weise melden müssen.

Nehmen wir an, Sie haben die folgende Tabelle sales(id, product, order_date, amount) die Nullwerte enthält.

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 |
+------+---------+------------+--------+

Jetzt werden wir COALESCE verwenden, um den ersten Nicht-Null-Wert aus jeder Zeile zu erhalten.

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

Wie Sie sehen können, gibt COALESCE aus jeder Zeile Nicht-Null-Werte zurück.

Sie können auch die COALESCE-Funktion verwenden, um Nullwerte durch benutzerdefinierte Zeichenfolgen zu ersetzen. Im folgenden Beispiel ersetzen wir jeden Nullwert mit COALESCE durch die Zeichenfolge „NA“.

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

Obwohl IFNULL auch zum Ersetzen von NULL-Werten verwendet werden kann, kann es nur 2 Argumente akzeptieren, gibt das 1. Argument zurück, wenn es null ist, sonst gibt es das zweite Argument zurück. COALESCE arbeitet mit einer beliebigen Anzahl von Argumenten, nicht nur mit zwei.


VEREINIGUNG in Ubiq

Das Ubiq Reporting Tool unterstützt alle oben genannten SQL-Abfragen und macht es einfach, SQL-Ergebnisse auf unterschiedliche Weise zu visualisieren. Hier ist die oben erwähnte COALESCE-SQL-Abfrage in Ubiq.

Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!