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!