Coalesce je užitečná funkce MySQL, která automaticky vrací první nenulovou hodnotu ze seznamu hodnot. Tyto hodnoty lze poskytnout pomocí literálů, názvů sloupců nebo jiných funkcí MySQL. V tomto článku se podíváme na to, jak používat Coalesce v MySQL.
Jak používat Coalesce v MySQL
Zde jsou kroky k použití COALSCE v MySQL
Co je COALESCE v MySQL
Funkce COALESCE vrací první hodnotu, která není NULL, ze seznamu hodnot. Pokud jsou všechny hodnoty v seznamu NULL, vrátí NULL. Zde je syntaxe funkce Coalesce v MySQL.
select coalesce(value1, value2, ..., valuen) from table_name;
Ve výše uvedeném příkazu musíte zadat název tabulky a poskytnout seznam hodnot oddělených čárkami.
Zde je několik jednoduchých příkladů, které ukazují funkčnost COALESCE.
mysql> select coalesce(NULL, 2, 3); +----------------------+ | coalesce(NULL, 2, 3) | +----------------------+ | 2 | +----------------------+ mysql> select coalesce(NULL, NULL); +----------------------+ | coalesce(NULL, NULL) | +----------------------+ | NULL | +----------------------+
Proč se COALESCE používá v MySQL
COALESCE se v MySQL používá k nahrazení hodnot null nějakým jiným řetězcem podle vašeho výběru. To je velmi užitečné pro vytváření přehledů a analýzy, kde nechcete měnit skutečná data, ale potřebujete je vykazovat jiným způsobem.
Řekněme, že máte následující tabulku prodej (id, produkt, datum_objednávky, částka) který obsahuje hodnoty null.
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 |
+------+---------+------------+--------+ Nyní použijeme COALESCE k získání první nenulové hodnoty z každého řádku.
mysql> select coalesce(id, product, order_date, amount) from sales; +-------------------------------------------+ | coalesce(id, product, order_date, amount) | +-------------------------------------------+ | A | | 2 | | C | | 4 | +-------------------------------------------+
Jak můžete vidět, COALESCE vrací nenulové hodnoty z každého řádku.
Můžete také použít funkci COALESCE k nahrazení hodnot null vlastními řetězci. V následujícím příkladu nahradíme každou hodnotu null řetězcem „NA“ pomocí 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
Ačkoli IFNULL lze také použít k nahrazení hodnot NULL, může přijmout pouze 2 argumenty, vrátí 1. argument, pokud je null, jinak vrátí druhý argument. COALESCE pracuje s libovolným počtem argumentů, ne pouze se dvěma.
COALESCE v Ubiq
Nástroj Ubiq Reporting podporuje všechny výše uvedené SQL dotazy a usnadňuje vizualizaci výsledků SQL různými způsoby. Zde je COALESCE SQL dotaz zmíněný výše v Ubiq.
Potřebujete nástroj pro vytváření sestav pro MySQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Zkuste to ještě dnes!