Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để tôi có thể tùy chỉnh đầu ra của hàm MySQL SUM () thành 0 thay vì NULL khi không có hàng nào phù hợp?


Như chúng ta biết rằng hàm SUM () trả về giá trị NULL nếu không có hàng nào phù hợp nhưng đôi khi chúng ta muốn nó trả về 0 thay vì NULL. Với mục đích này, chúng ta có thể sử dụng hàm MySQL COALESCE () chấp nhận hai đối số và trả về đối số thứ hai nếu đối số đầu tiên là NULL, nếu không, nó trả về đối số đầu tiên. Để hiểu khái niệm ở trên, hãy xem xét bảng ‘worker_tbl’ có các bản ghi sau -

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 |        250         |
| 2    | Ram  | 2007-05-27 |        220         |
| 3    | Jack | 2007-05-06 |        170         |
| 3    | Jack | 2007-04-06 |        100         |
| 4    | Jill | 2007-04-06 |        220         |
| 5    | Zara | 2007-06-06 |        300         |
| 5    | Zara | 2007-02-06 |        350         |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

Bây giờ, hàm MySQL SUM () trả về 0 khi chúng ta sử dụng hàm COALESCE với SUM () để tìm tổng số trang được nhập bởi 'Mohan', tên không có trong cột 'Tên' -

mysql> SELECT COALESCE(SUM(daily_typing_pages),0)AS ‘SUM(daily_typing_pages)’FROM employee_tbl WHERE Name = ‘Mohan’;
+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
|           0             |
+-------------------------+
1 row in set (0.00 sec)