Trong MySQL, khi làm việc với các giá trị số, có nhiều trường hợp bạn cần làm tròn số lên để đạt được kết quả theo mong muốn. Để thực hiện công việc này, MySQL cung cấp hai hàm mạnh mẽ: CEIL() và CEILING(). Dưới đây, chúng ta sẽ cùng khám phá chi tiết về cách sử dụng và sự khác biệt giữa hai hàm này.
Hàm CEIL() và CEILING() là gì?
Cả CEIL() và CEILING() đều được sử dụng để làm tròn lên một giá trị số thập phân đến số nguyên gần nhất. Về cốt lõi, hai hàm này hoàn toàn tương tự nhau, tùy thuộc vào sở thích cá nhân hoặc quy ước đặt tên mà bạn có thể chọn hàm nào để sử dụng trong truy vấn của mình.
Cú pháp của CEIL() và CEILING()
Cú pháp của hai hàm này khá đơn giản và giống nhau, chỉ cần bạn thay thế tên hàm tùy vào nhu cầu của mình:
CEIL(number)
CEILING(number)
number
: Là giá trị số bạn muốn làm tròn.
Ví dụ cụ thể
Để minh họa rõ hơn, hãy xem các ví dụ cụ thể dưới đây:
Sử dụng hàm CEIL()
SELECT CEIL(4.3); -- Trả về 5
SELECT CEIL(7.1); -- Trả về 8
SELECT CEIL(-2.7); -- Trả về -2
Sử dụng hàm CEILING()
SELECT CEILING(4.3); -- Trả về 5
SELECT CEILING(7.1); -- Trả về 8
SELECT CEILING(-2.7); -- Trả về -2
Như bạn có thể thấy, cả hai hàm đều cho ra cùng một kết quả khi làm tròn lên các giá trị số thập phân.
Ứng dụng thực tiễn
Kịch bản 1: Tính số trang của một danh sách sản phẩm
Giả sử bạn có một cơ sở dữ liệu sản phẩm và muốn chia ra thành các trang, mỗi trang chứa 10 sản phẩm. Nếu tổng số sản phẩm không chia hết cho 10, bạn sẽ cần làm tròn lên để đảm bảo có đủ trang cho tất cả sản phẩm.
SELECT CEIL(COUNT(*) / 10.0) AS total_pages FROM products;
Kịch bản 2: Tính tiền lương nhân viên theo giờ
Trong một số trường hợp, bạn có thể cần làm tròn lên số giờ làm việc của nhân viên để tính lương:
SELECT employee_id, CEIL(hours_worked) AS rounded_hours FROM work_log;
Kết luận
Hàm CEIL() và CEILING() trong MySQL là công cụ đắc lực để làm tròn lên các giá trị số thập phân đến số nguyên gần nhất. Sự tương đồng của chúng cho phép lập trình viên có thêm lựa chọn về cú pháp mà không ảnh hưởng đến chức năng. Tùy vào yêu cầu cụ thể của công việc và phong cách lập trình, bạn có thể chọn một trong hai hàm để sử dụng.
Comments