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

Sådan bruges Coalesce i MySQL

Coalesce er en nyttig MySQL-funktion, der automatisk returnerer den første ikke-nul værdi fra en liste over værdier. Disse værdier kan angives ved hjælp af bogstaver, kolonnenavne eller andre MySQL-funktioner. I denne artikel vil vi se på, hvordan man bruger Coalesce i MySQL.


Sådan bruges Coalesce i MySQL

Her er trinene til at bruge COALSCE i MySQL


Hvad er COALESCE i MySQL

COALESCE-funktionen returnerer den første ikke-NULL-værdi fra en liste over værdier. Hvis alle værdier på listen er NULL, returnerer den NULL. Her er syntaksen for Coalesce-funktionen i MySQL.

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

I ovenstående erklæring skal du angive tabelnavnet og angive en liste over kommaseparerede værdier.

Her er et par enkle eksempler for at vise funktionaliteten af ​​COALESCE.

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

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


Hvorfor COALESCE bruges i MySQL

COALESCE bruges i MySQL til at erstatte null-værdier med en anden streng efter eget valg. Dette er meget nyttigt til rapportering og analyser, hvor du ikke ønsker at ændre de faktiske data, men skal rapportere dem på en anden måde.

Lad os sige, at du har følgende tabel salg(id, produkt, ordredato, beløb) som indeholder null-værdier.

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 vil vi bruge COALESCE til at få den første ikke-nul værdi fra hver række.

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

Som du kan se, returnerer COALESCE ikke-nullværdier fra hver række.

Du kan også bruge COALESCE-funktionen til at erstatte nulværdier med tilpassede strenge. I det følgende eksempel vil vi erstatte hver null-værdi med 'NA'-streng ved hjælp af 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

Selvom IFNULL også kan bruges til at erstatte NULL-værdier, kan den kun acceptere 2 argumenter, returnerer det 1. argument, hvis det er null, ellers returnerer det andet argument. COALESCE arbejder med et vilkårligt antal argumenter, ikke kun to.


COALESCE i Ubiq

Ubiq Reporting-værktøj understøtter alle ovenstående SQL-forespørgsler og gør det nemt at visualisere SQL-resultater på forskellige måder. Her er COALESCE SQL-forespørgslen nævnt ovenfor, i Ubiq.

Har du brug for et rapporteringsværktøj til MySQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Fejl 404 ikke fundet med EM 12c

  2. Brug af Oracle JDeveloper 12c med Oracle Database, del 2

  3. Opdel given streng og forbered sagsfremstilling

  4. Kan du opdele/eksplodere et felt i en MySQL-forespørgsel?