Coalesce to przydatna funkcja MySQL, która automatycznie zwraca pierwszą niepustą wartość z listy wartości. Te wartości można podać za pomocą literałów, nazw kolumn lub innych funkcji MySQL. W tym artykule przyjrzymy się, jak używać Coalesce w MySQL.
Jak korzystać z Coalesce w MySQL
Oto kroki, jak używać COALSCE w MySQL
Co to jest COALESCE w MySQL
Funkcja COALESCE zwraca pierwszą niezerową wartość z listy wartości. Jeśli wszystkie wartości na liście są NULL, to zwraca NULL. Oto składnia funkcji Coalesce w MySQL.
select coalesce(value1, value2, ..., valuen) from table_name;
W powyższym oświadczeniu musisz określić nazwę tabeli i podać listę wartości oddzielonych przecinkami.
Oto kilka prostych przykładów pokazujących funkcjonalność COALESCE.
mysql> select coalesce(NULL, 2, 3); +----------------------+ | coalesce(NULL, 2, 3) | +----------------------+ | 2 | +----------------------+ mysql> select coalesce(NULL, NULL); +----------------------+ | coalesce(NULL, NULL) | +----------------------+ | NULL | +----------------------+
Dlaczego COALESCE jest używane w MySQL
COALESCE jest używany w MySQL do zastępowania wartości null innym wybranym ciągiem. Jest to bardzo przydatne do raportowania i analiz, w których nie chcesz zmieniać rzeczywistych danych, ale musisz je zgłosić w inny sposób.
Załóżmy, że masz następującą tabelę sprzedaż (identyfikator, produkt, data_zamówienia, kwota) który zawiera wartości 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 |
+------+---------+------------+--------+ Teraz użyjemy COALESCE, aby uzyskać pierwszą niezerową wartość z każdego wiersza.
mysql> select coalesce(id, product, order_date, amount) from sales; +-------------------------------------------+ | coalesce(id, product, order_date, amount) | +-------------------------------------------+ | A | | 2 | | C | | 4 | +-------------------------------------------+
Jak widać, COALESCE zwraca wartości inne niż null z każdego wiersza.
Możesz również użyć funkcji COALESCE, aby zastąpić wartości null niestandardowymi ciągami. W poniższym przykładzie zastąpimy każdą wartość null ciągiem „NA” za 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 |
+------+---------+------------+--------+
POŁĄCZENIE vs IFNULL MySQL
Chociaż IFNULL może być również używany do zastępowania wartości NULL, może akceptować tylko 2 argumenty, zwraca pierwszy argument, jeśli ma wartość NULL, w przeciwnym razie zwraca drugi argument. COALESCE działa z dowolną liczbą argumentów, a nie tylko dwoma.
POŁĄCZENIE w Ubiq
Narzędzie Ubiq Reporting obsługuje wszystkie powyższe zapytania SQL i ułatwia wizualizację wyników SQL na różne sposoby. Oto wspomniane powyżej zapytanie COALESCE SQL w Ubiq.
Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!