Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách sử dụng Coalesce trong MySQL

Coalesce là một hàm MySQL hữu ích tự động trả về giá trị không rỗng đầu tiên từ danh sách các giá trị. Các giá trị này có thể được cung cấp bằng cách sử dụng các ký tự, tên cột hoặc các hàm MySQL khác. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng Coalesce trong MySQL.


Cách sử dụng Coalesce trong MySQL

Dưới đây là các bước để sử dụng COALSCE trong MySQL


COALESCE trong MySQL là gì

Hàm COALESCE trả về giá trị không phải NULL đầu tiên từ danh sách các giá trị. Nếu tất cả các giá trị trong danh sách là NULL, thì nó trả về NULL. Đây là cú pháp của hàm Coalesce trong MySQL.

 chọn liên kết (value1, value2, ..., valuen) từ tên_bảng; 

Trong câu lệnh trên, bạn cần chỉ định tên bảng và cung cấp danh sách các giá trị được phân tách bằng dấu phẩy.

Dưới đây là một số ví dụ đơn giản để hiển thị chức năng của COALESCE.

 mysql> select Coalesce (NULL, 2, 3); + ---------------------- + | liên kết (NULL, 2, 3) | + ---------------------- + | 2 | + ---------------------- + mysql> chọn liên kết (NULL, NULL); + ------------- --------- + | liên kết (NULL, NULL) | + ---------------------- + | NULL | + ---------------------- + 


Tại sao COALESCE được sử dụng trong MySQL

COALESCE được sử dụng trong MySQL để thay thế các giá trị null bằng một số chuỗi khác mà bạn chọn. Điều này rất hữu ích cho việc báo cáo và phân tích trong đó bạn không muốn thay đổi dữ liệu thực tế nhưng cần báo cáo theo một cách khác.

Giả sử bạn có bảng sau doanh số bán hàng (id, sản phẩm, ngày_đặt_hàng, số tiền) chứa các giá trị rỗng.

 mysql> tạo bảng bán hàng (id int, product varchar (5), order_date date, amount int); mysql> chèn vào các giá trị bán hàng (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); mysql> select * from sales; + ------ + --------- + ------------ + -------- + | id | sản phẩm | order_date | số tiền | + ------ + --------- + ------------ + -------- + | NULL | A | 2020-01-01 | 150 || 2 | NULL | 2020-01-01 | 150 || NULL | C | NULL | 150 || 4 | Đ | 2020-01-01 | NULL | + ------ + --------- + ------------ + -------- + 

Bây giờ chúng ta sẽ sử dụng COALESCE để nhận giá trị không rỗng đầu tiên từ mỗi hàng.

 mysql> chọn liên kết (id, sản phẩm, ngày_đơn hàng, số lượng) từ doanh số bán hàng; + ------------------------------ ------------- + | liên kết (id, sản phẩm, ngày_đặt_hàng, số lượng) | + -------------------------------------- ----- + | A || 2 || C || 4 | + ------------------------------------------- +  

Như bạn có thể thấy, COALESCE trả về các giá trị không rỗng từ mỗi hàng.

Bạn cũng có thể sử dụng hàm COALESCE để thay thế các giá trị null bằng các chuỗi tùy chỉnh. Trong ví dụ sau, chúng tôi sẽ thay thế mỗi giá trị null bằng chuỗi ‘NA’ bằng cách sử dụng COALESCE.

 mysql> chọn id liên kết (id, 'NA'), liên kết (sản phẩm, 'NA') sản phẩm, liên kết (order_date, 'NA') order_date, liên kết (số lượng, 'NA') số tiền bán hàng; + ------ + --------- + ------------ + -------- + | id | sản phẩm | order_date | số tiền | + ------ + --------- + ------------ + -------- + | NA | A | 2020-01-01 | 150 | | 2 | NA | 2020-01-01 | 150 | | NA | C | NA | 150 | | 4 | Đ | 2020-01-01 | NA | + ------ + --------- + ------------ + -------- + 


COALESCE so với IFNULL MySQL

Mặc dù IFNULL cũng có thể được sử dụng để thay thế các giá trị NULL, nó chỉ có thể chấp nhận 2 đối số, trả về đối số thứ nhất nếu nó là null, còn lại trả về đối số thứ hai. COALESCE hoạt động với bất kỳ số lượng đối số nào, không chỉ hai.


COALESCE ở Ubiq

Công cụ Báo cáo Ubiq hỗ trợ tất cả các truy vấn SQL ở trên và giúp bạn dễ dàng hình dung kết quả SQL theo những cách khác nhau. Đây là truy vấn COALESCE SQL được đề cập ở trên, trong Ubiq.

Cần một công cụ báo cáo cho MySQL? Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ tốt nhất thông tin người dùng và thông tin đăng nhập và mật khẩu của người dùng

  2. Cách sao lưu cơ sở dữ liệu MySQL từ dòng lệnh trong Linux

  3. Nhiều bản cập nhật trong MySQL

  4. Có thể thực thi một chuỗi trong MySQL không?

  5. Cách sao chép bảng trong MySQL