Chúng ta hãy giả sử bảng sau (ví dụ như một kết quả của nhiều bên tham gia báo cáo):MySQL: Typecasting NULL 0
id | column_1 | column_2
------------------------
1 | 1 |
2 | 2 | 2
3 | | 3
nào bạn có thể ví dụ như nhận được từ các tuyên bố sau:
select a.id, t1.column_1, t2.column_2
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id
Bây giờ, nếu tôi muốn tổng hợp t1.column_1 và t2.column_2 như sau
select
a.id,
t1.column_1,
t2.column_2,
(t1.column_1 + t2.column_2) as cumulated
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id
Các reslut sẽ trông như sau:
id | column_1 | column_2 | cumulated
------------------------------------
1 | 1 | NULL | NULL
2 | 2 | 2 | 4
3 | NULL | 3 | NULL
Câu hỏi của tôi về cơ bản là: có cách nào để đánh máy NULL thành 0 để thực hiện một số phép tính không?
Tôi đã thử CONVERT(t1.column_1, SIGNED)
và CAST(t1.column_1 as SIGNED)
, nhưng NULL
vẫn là NULL
.
và kết hợp có thể có nhiều giá trị? –
Có ... vì vậy COALESCE (cột1, cột2, 0) sẽ trả về giá trị không rỗng đầu tiên của các giá trị này. Ghi nhớ điều này hoạt động theo chiều ngang, không theo chiều dọc. Các cột phải thuộc về cùng một hàng của bảng. –
@David: Làm tốt lắm. –