Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвате Coalesce в MySQL

Coalesce е полезна функция на MySQL, която автоматично връща първата ненулева стойност от списък със стойности. Тези стойности могат да бъдат предоставени с помощта на литерали, имена на колони или други MySQL функции. В тази статия ще разгледаме как да използваме Coalesce в MySQL.


Как да използвам Coalesce в MySQL

Ето стъпките за използване на COALSCE в MySQL


Какво е COALESCE в MySQL

Функцията COALESCE връща първата стойност, различна от NULL, от списък със стойности. Ако всички стойности в списъка са NULL, тогава той връща NULL. Ето синтаксиса на функцията Coalesce в MySQL.

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

В горния израз трябва да посочите име на таблицата и да предоставите списък със стойности, разделени със запетая.

Ето няколко прости примера за показване на функционалността на COALESCE.

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

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


Защо COALESCE се използва в MySQL

COALESCE се използва в MySQL за заместване на нулеви стойности с друг низ по ваш избор. Това е много полезно за отчитане и анализ, където не искате да променяте действителните данни, но трябва да ги отчитате по различен начин.

Да кажем, че имате следната таблица sales(id, product, order_date, amount) който съдържа нулеви стойности.

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

Сега ще използваме COALESCE, за да получим първата ненулева стойност от всеки ред.

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

Както можете да видите, COALESCE връща ненулеви стойности от всеки ред.

Можете също да използвате функцията COALESCE, за да замените нулеви стойности с персонализирани низове. В следващия пример ще заменим всяка нулева стойност с низ „NA“, използвайки 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 срещу IFNULL MySQL

Въпреки че IFNULL също може да се използва за заместване на NULL стойности, той може да приеме само 2 аргумента, връща 1-вия аргумент, ако е нулев, иначе връща втория аргумент. COALESCE работи с произволен брой аргументи, а не само с два.


СЛИВАНЕ в Ubiq

Инструментът за отчитане на Ubiq поддържа всички горепосочени SQL заявки и улеснява визуализирането на SQL резултатите по различни начини. Ето споменатата по-горе заявка COALESCE SQL в Ubiq.

Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пример за връзка с JavaFX MySQL, моля

  2. mysql_num_rows():предоставеният аргумент не е валиден ресурс за MySQL резултат

  3. колона за актуализиране на mysql със стойност от друга таблица

  4. Нулиране на Root парола на MySQL

  5. Ефективно наблюдение на MySQL с табла за управление на SCUMM:част 3