Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak korzystać z Coalesce w MySQL

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ś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalowanie MySQL na CentOS 7

  2. Utrzymanie porządku w zapytaniu MySQL IN

  3. Jak skonfigurować replikację asynchroniczną z klastra Galera na samodzielny serwer MySQL z GTID

  4. Użyj relacyjnych baz danych MySQL na Ubuntu 8.04 (Hardy)

  5. BŁĄD 1044 (42000):Odmowa dostępu dla użytkownika „@”localhost” do bazy danych „db”