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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!