Phép chia cột
Tính toán trực tiếp trong SELECT, gán alias cho cột kết quả.
Ví dụ
Tạo bảng:
CREATE TABLE DemoTable719 (
FirstNumber INT,
SecondNumber INT
);
INSERT INTO DemoTable719 VALUES
(20, 10), (500, 50), (400, 20);
Truy vấn chia:
SELECT *,
FirstNumber / SecondNumber AS Result
FROM DemoTable719;
Kết quả:
+-------------+--------------+---------+
| FirstNumber | SecondNumber | Result |
+-------------+--------------+---------+
| 20 | 10 | 2.0000 |
| 500 | 50 | 10.0000 |
| 400 | 20 | 20.0000 |
+-------------+--------------+---------+
Chi tiết kiểu dữ liệu
- MySQL thực hiện floating-point division cho INT / INT → kết quả DECIMAL.
- Độ chính xác mặc định: 4 chữ số thập phân (có thể thay đổi với
CASThoặcROUND). - Nếu muốn integer division:
FirstNumber DIV SecondNumber(trả về INT).
Xử lý chia cho 0
SELECT *,
CASE
WHEN SecondNumber = 0 THEN NULL
ELSE FirstNumber / SecondNumber
END AS Result
FROM DemoTable719;
Hoặc dùng NULLIF:
SELECT *,
FirstNumber / NULLIF(SecondNumber, 0) AS Result
FROM DemoTable719;
Làm tròn kết quả
-- 2 chữ số thập phân
ROUND(FirstNumber / SecondNumber, 2)
-- Làm tròn xuống (floor)
FLOOR(FirstNumber / SecondNumber)
-- Làm tròn lên (ceil)
CEIL(FirstNumber / SecondNumber)
Lưu ý
- Chia cho 0 trả về NULL (không báo lỗi) trong SELECT, nhưng cảnh báo (Warning).
- Trong stored procedure với
STRICT_TRANS_TABLES, chia cho 0 có thể gây lỗi. - Luôn kiểm tra mẫu số = 0 trong production code.