sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder Coalesce i MySQL

Coalesce är en användbar MySQL-funktion som automatiskt returnerar det första icke-nullvärdet från en lista med värden. Dessa värden kan tillhandahållas med hjälp av bokstaver, kolumnnamn eller andra MySQL-funktioner. I den här artikeln kommer vi att titta på hur man använder Coalesce i MySQL.


Hur man använder Coalesce i MySQL

Här är stegen för att använda COALSCE i MySQL


Vad är COALESCE i MySQL

COALESCE-funktionen returnerar det första icke-NULL-värdet från en värdelista. Om alla värden i listan är NULL, returnerar den NULL. Här är syntaxen för Coalesce-funktionen i MySQL.

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

I satsen ovan måste du ange tabellnamn och tillhandahålla en lista med kommaseparerade värden.

Här är ett par enkla exempel för att visa funktionaliteten hos COALESCE.

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

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


Varför COALESCE används i MySQL

COALESCE används i MySQL för att ersätta nollvärden med någon annan valfri sträng. Detta är mycket användbart för rapportering och analys där du inte vill ändra den faktiska informationen utan behöver rapportera den på ett annat sätt.

Låt oss säga att du har följande tabell försäljning(id, produkt, orderdatum, belopp) som innehåller nollvärden.

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 kommer vi att använda COALESCE för att få första icke-nullvärde från varje rad.

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

Som du kan se returnerar COALESCE icke-nullvärden från varje rad.

Du kan också använda COALESCE-funktionen för att ersätta nollvärden med anpassade strängar. I följande exempel kommer vi att ersätta varje nullvärde med 'NA'-sträng med 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

Även om IFNULL också kan användas för att ersätta NULL-värden, kan det bara acceptera 2 argument, returnerar det första argumentet om det är null, annars returnerar det andra argumentet. COALESCE arbetar med hur många argument som helst, inte bara två.


COALESCE i Ubiq

Ubiqs rapporteringsverktyg stöder alla ovanstående SQL-frågor och gör det enkelt att visualisera SQL-resultat på olika sätt. Här är COALESCE SQL-frågan som nämns ovan, i Ubiq.

Behöver du ett rapporteringsverktyg för MySQL? Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. SQL Server-väntehändelser -1

  2. Bästa sättet att återställa en Oracle-sekvens till nästa värde i en befintlig kolumn?

  3. Oracle till PostgreSQL:ANSI yttre kopplingssyntax i PostgreSQL

  4. SQL ELLER Operator för nybörjare