บทความนี้จะอธิบายรายละเอียดเกี่ยวกับการใช้งานฟังก์ชัน ROUND ใน SQL Server พร้อมไวยากรณ์และตัวอย่างเฉพาะเจาะจง
คำอธิบาย
ฟังก์ชัน ROUND ใน SQL Server ใช้ปัดเศษตัวเลขไปยังตำแหน่งทศนิยมที่กำหนด
ไวยากรณ์
การใช้งานฟังก์ชัน ROUND ใน SQL Server มีรูปแบบดังนี้:
ROUND(number, decimal, operation)
พารามิเตอร์:
- number: ตัวเลขที่ส่งเข้ามาเพื่อปัดเศษ
- decimal: จำนวนตำแหน่งทศนิยมที่ปัดเศษ ค่านี้ต้องเป็นจำนวนเต็มบวกหรือลบ หากละเว้นพารามิเตอร์นี้ ฟังก์ชัน ROUND จะปัดเศษตัวเลขเป็น 0 ตำแหน่งทศนิยม
- operation: พารามิเตอร์ที่ไม่จำเป็น ค่าการดำเนินการสามารถเป็นค่าตัวเลขอื่นได้ เมื่อเป็น 0 (หรือละเว้น) ฟังก์ชัน ROUND จะปัดเศษผลลัพธ์เป็นทศนิยม หาก operation เป็นค่าอื่นนอกจาก 0 ฟังก์ชัน ROUND จะตัดทิ้งผลลัพธ์เป็นทศนิยม (truncate)
หลักการปัดเศษ:
เมื่อคุณปัดเศษตัวเลข ระบบจะตรวจสอบตัวเลขในตำแหน่ง (decimal + 1):
- หากตัวเลขมากกว่า 4 ตัวเลขในตำแหน่งทศนิยมจะบวก 1 ตัวเลขด้านหลังจะกลายเป็น 0
- หากตัวเลขน้อยกว่า 5 ตัวเลขในตำแหน่งทศนิยมจะคงเดิม ตัวเลขด้านหลังจะกลายเป็น 0
ตัวอย่างเรามีตัวเลขทศนิยม 423.3241

- SELECT ROUND (423.3241, -2) ผลลัพธ์ 400.0000
- SELECT ROUND (423.3241, -1) ผลลัพธ์ 420.0000
- SELECT ROUND (423.3241, 0) ผลลัพธ์ 423.0000
- SELECT ROUND (423.3241, 1) ผลลัพธ์ 423.3000
- SELECT ROUND (423.3241, 2) ผลลัพธ์ 423.3200
- SELECT ROUND (423.3241, 3) ผลลัพธ์ 423.3240
- SELECT ROUND (423.3241, 4) ผลลัพธ์ 423.3241
หมายเหตุ:
- ดูเพิ่มเติมฟังก์ชัน CEILING และ FLOOR
- ฟังก์ชัน ROUND รองรับใน SQL Server 2005, 2008, 2008 R2, 2012, 2014, 2016, 2017 และเวอร์ชันใหม่กว่า
ตัวอย่างการใช้งาน
ดูตัวอย่างฟังก์ชัน ROUND ใน SQL Server:
ตัวอย่าง 1: ปัดเศษตัวเลข
SELECT ROUND(125.315, 2);
-- ผลลัพธ์: 125.320 (ปัดเศษเพราะพารามิเตอร์ที่ 3 ถูกละเว้น)
SELECT ROUND(125.315, 2, 0);
-- ผลลัพธ์: 125.320 (ปัดเศษเพราะพารามิเตอร์ที่ 3 เป็น 0)
SELECT ROUND(125.315, 2, 1);
-- ผลลัพธ์: 125.310 (ตัดทิ้งเพราะพารามิเตอร์ที่ 3 ไม่ใช่ 0)
SELECT ROUND(125.315, 1);
-- ผลลัพธ์: 125.300 (ปัดเศษเพราะพารามิเตอร์ที่ 3 ถูกละเว้น)
SELECT ROUND(125.315, 0);
-- ผลลัพธ์: 125.000 (ปัดเศษเพราะพารามิเตอร์ที่ 3 ถูกละเว้น)
SELECT ROUND(125.315, -1);
-- ผลลัพธ์: 130.000 (ปัดเศษเพราะพารามิเตอร์ที่ 3 ถูกละเว้น)
SELECT ROUND(125.315, -2);
-- ผลลัพธ์: 100.000 (ปัดเศษเพราะพารามิเตอร์ที่ 3 ถูกละเว้น)
ตัวอย่าง 2: เรามีตารางข้อมูลดังนี้

1. ดึงคอลัมน์หมวดหมู่ย่อยและอัตราส่วนของเว็บไซต์ ปัดเศษอัตราส่วนเป็นทศนิยม 2 ตำแหน่ง
SELECT Chuyenmuccon, ROUND(Tyle, 2) AS Tylemoi
FROM Quantrimang;
-- ผลลัพธ์:
-- Chuyenmuccon Tylemoi
-- SQL Server 74.63
-- Facebook 58.99
-- Python 36.22
-- JavaScript 42.68
-- Google Chrome 94.88
-- Instagram 82.16
2. ดึงคอลัมน์หมวดหมู่ย่อยและเปอร์เซ็นต์ของหมวดหมู่การเขียนโปรแกรม ปัดเศษอัตราส่วนเป็นส่วนจำนวนเต็ม
SELECT Chuyenmuccon, ROUND(Tyle, 0) AS Tylemoi
FROM Quantrimang
WHERE Chuyenmuclon = 'Lap trinh';
-- ผลลัพธ์:
-- Chuyenmuccon Tylemoi
-- SQL Server 75
-- Python 36
-- JavaScript 43