วิธีการ Truncate
ตำแหน่งทศนิยมใน SQL Server โดยไม่ทำการปัดเศษ
เมื่อทำงานกับค่าทศนิยมใน SQL Server คุณอาจพบว่าจำเป็นต้องจัดการจำนวนตำแหน่งทศนิยมในข้อมูลของคุณ บ่อยครั้งฟังก์ชัน ROUND
จะทำการปัดเศษค่า ซึ่งอาจไม่เหมาะกับทุกสถานการณ์ ในโพสต์บล็อกนี้เราจะสำรวจวิธีการตัดตำแหน่งทศนิยมใน SQL Server โดยไม่ทำการปัดเศษ
ปัญหา: การปัดเศษเทียบกับการตัด
ลองจินตนาการว่าคุณมีค่าทศนิยมเช่น 123.456
และคุณต้องการเก็บไว้ที่สองตำแหน่งทศนิยม การใช้วิธีการปัดเศษมาตรฐานใน SQL Server จะปรับค่าเป็น 123.46
โดยอัตโนมัติ อย่างไรก็ตามมีสถานการณ์ที่คุณต้องการแค่ตัดทศนิยมส่วนเกินออก ทำให้ได้ 123.45
แทน นี่คือจุดที่การตัดกลายเป็นสิ่งจำเป็น
ลองมาดูค่าตัวอย่างกัน:
DECLARE @value DECIMAL(18,2);
SET @value = 123.456;
หลังจากที่ดำเนินการโค้ดนี้ด้วยการปัดเศษมาตรฐาน @value
จะกลายเป็น 123.46
แต่ถ้าคุณต้องการให้มันเป็น 123.45
ล่ะ?
วิธีแก้ปัญหา: การใช้ฟังก์ชัน ROUND
SQL Server มีฟังก์ชัน ROUND
ที่ทรงพลัง ซึ่งสามารถช่วยให้คุณตัดตำแหน่งทศนิยม ฟังก์ชันนี้ต้องการสามพารามิเตอร์:
- number: นี่คือค่าทศนิยมที่คุณต้องการตัด
- decimals: ระบุจำนวนตำแหน่งทศนิยมที่คุณต้องการเก็บ
- operation: นี่เป็นพารามิเตอร์เสริม ตั้งค่านี้เป็น
0
เพื่อปัดเศษผลลัพธ์ หรือเป็นค่าอื่น (เช่น1
) เพื่อทำการตัด
ตัวอย่างการใช้งาน
นี่คือวิธีการใช้ฟังก์ชัน ROUND
อย่างมีประสิทธิภาพ:
SELECT ROUND(123.456, 2, 1);
ในกรณีนี้ การใช้ 1
เป็นพารามิเตอร์ตัวที่สามจะทำการตัดค่าลงเหลือ 123.45
แทนที่จะเป็นการปัดเศษ
ความเข้ากันได้
ฟังก์ชัน ROUND
ที่มีความสามารถในการตัดทำงานในสภาพแวดล้อมดังต่อไปนี้:
- SQL Server (เริ่มต้นจากเวอร์ชัน 2008)
- Azure SQL Database
- Azure SQL Data Warehouse
- Parallel Data Warehouse
สำหรับรายละเอียดเพิ่มเติม คุณสามารถดูได้ที่ W3Schools SQL Server ROUND documentation
สรุป
โดยการใช้ฟังก์ชัน ROUND
พร้อมกับพารามิเตอร์ที่เหมาะสม คุณสามารถตัดตำแหน่งทศนิยมใน SQL Server ได้โดยไม่ทำการปัดเศษค่า เทคนิคนี้ทำให้คุณมีการควบคุมที่แม่นยำต่อการนำเสนอข้อมูลของคุณ และรักษาความถูกต้องและความแม่นยำที่จำเป็นสำหรับความต้องการเฉพาะของโปรเจ็กต์ของคุณ
อย่าลังเลที่จะลองใช้เทคนิคนี้ในสภาพแวดล้อม SQL Server ของคุณและแน่ใจว่าข้อมูลของคุณมีรูปแบบตามที่คุณต้องการ!