วิธีการ 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 ที่ทรงพลัง ซึ่งสามารถช่วยให้คุณตัดตำแหน่งทศนิยม ฟังก์ชันนี้ต้องการสามพารามิเตอร์:

  1. number: นี่คือค่าทศนิยมที่คุณต้องการตัด
  2. decimals: ระบุจำนวนตำแหน่งทศนิยมที่คุณต้องการเก็บ
  3. 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 ของคุณและแน่ใจว่าข้อมูลของคุณมีรูปแบบตามที่คุณต้องการ!