본문 바로가기
  • [성공하는 개발자] - Developer
카테고리 없음

[MSSQL] 소수점 이하 0 제거 방법

by Sein-JH 2022. 4. 11.
728x90

SQL Server 2012 버전부터 FORMAT() 함수를 사용하여 소수점의 형식을 변경할 수 있는 기능이 추가 되었다. 오라클 SQL의 TO_CHAR 함수와 FM을 사용하는 방법과 비슷하다.

 

SQL Server 2012 이전 버전에서는 DECIMAL 형의 값을 FLOAT 형으로 변환하는 방법으로 소수점 이하의 0값을 제거하였지만, FORMAT 함수를 사용하면 간편하게 변환이 가능하다.

 

SELECT FORMAT(123.456700, '##0.######') AS result

 

주의할 점은 숫자의 최대 자리수와 포맷(# or 0)의 길이가 일치해야 한다. 만약 소수점 이하의 값의 길이보다 "#"의 길이가 짧으면 해당 위치에서 반올림하여 표시한다.

 

#은 수치값의 "0"을 제거하고, "0"은 해당 자리에 "0"을 표시한다. 위의 예제에서 첫째 자리에 "0"으로 지정한 이유는 정수값이 없으면 "0"으로 표시하고 이후 소수점을 표시한다.

 

| SQL Server 2012 이전 버전


SELECT CAST(CAST(123.456700 AS DECIMAL(9,6)) AS FLOAT) AS result

SQL Server 2012 이전 버전에서는 FORMAT 함수를 사용하여 변경을 할 수 없기 때문에 위의 방법을 사용하면 된다. DECIMAL 형을 FLOAT 형으로 변환을 하는 것이기 때문에 정밀한 값은 차이가 발생할 수 있어 주의해야 한다.

 

참고 :  https://gent.tistory.com/349?category=874679 

 

댓글