sql >> Database >  >> RDS >> Mysql

Coalesce gebruiken in MySQL

Coalesce is een handige MySQL-functie die automatisch de eerste niet-null-waarde uit een lijst met waarden retourneert. Deze waarden kunnen worden opgegeven met behulp van letterlijke waarden, kolomnamen of andere MySQL-functies. In dit artikel zullen we bekijken hoe u Coalesce in MySQL kunt gebruiken.


Coalesce gebruiken in MySQL

Dit zijn de stappen om COALSCE in MySQL te gebruiken


Wat is COALESCE in MySQL

COALESCE-functie retourneert de eerste niet NULL-waarde uit een lijst met waarden. Als alle waarden in de lijst NULL zijn, wordt NULL geretourneerd. Hier is de syntaxis van de Coalesce-functie in MySQL.

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

In de bovenstaande instructie moet u de tabelnaam opgeven en een lijst met door komma's gescheiden waarden opgeven.

Hier zijn een paar eenvoudige voorbeelden om de functionaliteit van COALESCE te laten zien.

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

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


Waarom COALESCE wordt gebruikt in MySQL

COALESCE wordt in MySQL gebruikt om null-waarden te vervangen door een andere tekenreeks naar keuze. Dit is erg handig voor rapportage en analyse waarbij u de feitelijke gegevens niet wilt wijzigen, maar deze op een andere manier moet rapporteren.

Stel dat u de volgende tabel verkoop(id, product, besteldatum, bedrag) . heeft die null-waarden bevat.

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

Nu gaan we COALESCE gebruiken om de eerste niet-null-waarde van elke rij te krijgen.

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

Zoals je kunt zien, retourneert COALESCE niet-null-waarden uit elke rij.

U kunt ook de functie COALESCE gebruiken om null-waarden te vervangen door aangepaste tekenreeksen. In het volgende voorbeeld zullen we elke null-waarde vervangen door 'NA'-tekenreeks met behulp van 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

Hoewel IFNULL ook kan worden gebruikt om NULL-waarden te vervangen, kan het slechts 2 argumenten accepteren, retourneert het eerste argument als het null is, anders retourneert het het tweede argument. COALESCE werkt met een willekeurig aantal argumenten, niet slechts twee.


COALESCE in Ubiq

Ubiq Reporting-tool ondersteunt alle bovenstaande SQL-query's en maakt het gemakkelijk om SQL-resultaten op verschillende manieren te visualiseren. Hier is de COALESCE SQL-query die hierboven is genoemd, in Ubiq.

Een rapportagetool voor MySQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te monitoren. Probeer het vandaag nog!

  1. PostgreSQL -moet voorkomen in de GROUP BY-component of worden gebruikt in een aggregatiefunctie

  2. 5 voordelen van proactieve monitoring van databaseprestaties

  3. UTF-16/Unicode-gegevens opslaan in SQL Server

  4. Basisklasse en afgeleide objectvarianten