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;
이 코드를 표준 반올림으로 실행하면 @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 데이터베이스
- Azure SQL 데이터 웨어하우스
- 병렬 데이터 웨어하우스
자세한 내용은 W3Schools SQL Server ROUND 문서를 참조할 수 있습니다.
결론
적절한 매개변수를 사용하여 ROUND
함수를 이용하면 SQL Server에서 소수 자리수를 쉽게 잘라낼 수 있으며, 값은 반올림되지 않습니다. 이 방법은 데이터 프레젠테이션에 대해 정밀한 제어를 가능하게 하여 특정 프로젝트 요구에 필요한 무결성과 정확성을 유지하도록 합니다.
자신의 SQL Server 환경에서 이 기술을 시도해 보시고, 데이터가 필요로 하는 방식으로 포맷되었는지 확인하세요!