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

Trả về 0 trong một cột mới khi bản ghi là NULL trong MySQL?

Đối với điều này, bạn có thể sử dụng câu lệnh CASE. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable703 (Price int);
Query OK, 0 rows affected (0.46 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable703 values(102);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable703 values(null);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable703 values(0);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable703 values(500);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable703 values(100);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable703 values(null);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable703 values(2340);
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable703;

Điều này sẽ tạo ra kết quả sau -

+-------+
| Price |
+-------+
| 102   |
| NULL  |
| 0     |
| 500   |
| 100   |
| NULL  |
| 2340  |
+-------+
7 rows in set (0.00 sec)

Sử dụng câu lệnh CASE -

mysql> select Price, case When Price IS NULL Then 0 else Price END AS Result from DemoTable703;

Điều này sẽ tạo ra kết quả sau -

+-------+--------+
| Price | Result |
+-------+--------+
| 102   | 102    |
| NULL  | 0      |
| 0     | 0      |
| 500   | 500    |
| 100   | 100    |
| NULL  | 0      |
| 2340  | 2340   |
+-------+--------+
7 rows in set (0.00 sec)