SQL Server에서 반올림 없이 소수 자리수를 Truncate하는 방법

SQL Server에서 소수 값을 다룰 때, 데이터에서 소수 자리 수를 관리해야 할 필요가 있는 경우가 종종 있습니다. 일반적인 ROUND 함수는 값을 반올림하기 때문에 모든 시나리오에 적합하지 않을 수 있습니다. 이 블로그 게시물에서는 SQL Server에서 소수 자리수를 반올림 없이 자르는 방법을 살펴보겠습니다.

문제: 반올림 vs. 자르기

예를 들어, 123.456이라는 소수 값이 있다고 가정하고, 이를 두 자리 소수로 유지하고 싶다고 합시다. SQL Server의 표준 반올림 방법을 사용하면 값이 자동으로 123.46으로 조정됩니다. 그러나 경우에 따라 단순히 추가 소수를 제거하고 123.45로 만들고 싶을 수도 있습니다. 이때 자르기가 중요해집니다.

샘플 값에 대해 빠르게 살펴봅시다:

DECLARE @value DECIMAL(18,2);
SET @value = 123.456;

이 코드를 표준 반올림으로 실행하면 @value123.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 데이터베이스
  • Azure SQL 데이터 웨어하우스
  • 병렬 데이터 웨어하우스

자세한 내용은 W3Schools SQL Server ROUND 문서를 참조할 수 있습니다.

결론

적절한 매개변수를 사용하여 ROUND 함수를 이용하면 SQL Server에서 소수 자리수를 쉽게 잘라낼 수 있으며, 값은 반올림되지 않습니다. 이 방법은 데이터 프레젠테이션에 대해 정밀한 제어를 가능하게 하여 특정 프로젝트 요구에 필요한 무결성과 정확성을 유지하도록 합니다.

자신의 SQL Server 환경에서 이 기술을 시도해 보시고, 데이터가 필요로 하는 방식으로 포맷되었는지 확인하세요!