프로그래밍/DB

[DB] MSSQL 반올림,올림,버림 방법(ROUND,CELLING,FLOOR)

ss-pro 2020. 11. 6. 22:26
반응형

데이터베이스상에서 반올림,올림,버림하는 방법에 대하여 알아보도록 하겠습니다. 반올림을 하는경우에는 ROUND함수를 사용하고 올림은 CELLING함수 버림은 FLOOR함수를 사용합니다. 

1. CELLING함수
이 함수는 지정한 숫자 식보다 크거나 같은 최소 정수를 반환합니다. 소수점 올림처리를 하겠다는 애기이며 소수점단위에 대해서만 처리가 가능합니다. 

2. FLOOR
지정된 숫자 식보다 작거나 같은 최대 정수를 반환합니다.소수점 버림처리를 하겠다는 애기이며 소수점단위에 대해서만 처리가 가능합니다. 

3. ROUND함수
특정 길이나 전체 자릿수로 반올림한 숫자 값을 반환합니다. MSDN에 설명된 구문을 보면 다음과 같습니다. 

설명보다 실제 데이터를 보면 이해가 빠르실겁니다. 소수점단위 올림,버림,반올림을 해보고 ROUND함수를 가지고 1의단위등 단위를 지정하여 버림하는 방법에 대하여 테스트 해보겠습니다. 

 
/****** SSMS의 SelectTopNRows 명령 스크립트 ******/
SELECT TOP 1000 [SalesOrderID]
      ,[UnitPrice]
      ,CEILING(UnitPrice)            'CEILING(UnitPrice)'         --소수점올림
    ,FLOOR(UnitPrice)              'FLOOR(UnitPrice)'           --소수점버림
      ,ROUND(UnitPrice,0)            'ROUND(UnitPrice,0)'         --소수점반올림
      ,ROUND(UnitPrice,1)            'ROUND(UnitPrice,1)'         --두번째소수점 반올림
      ,ROUND(UnitPrice,-1)           'ROUND(UnitPrice,-1)'        --1의자리반올림
      ,ROUND(UnitPrice,0,1)          'ROUND(UnitPrice,0,1)'       --소수점자리버림
      ,ROUND(UnitPrice,-1,1)         'ROUND(UnitPrice,-1,1)'      --1의자리버림
      ,ROUND(UnitPrice,-2,1)         'ROUND(UnitPrice,-2,1)'      --10의자리버림
 FROM [AdventureWorks2014].[Sales].[SalesOrderDetail

쿼리결과



참고)
docs.microsoft.com/ko-kr/sql/t-sql/functions/round-transact-sql?f1url=%3FappId%3DDev10IDEF1%26l%3DKO-KR%26k%3Dk(ROUND_TSQL);k(SQL12.SWB.TSQLRESULTS.F1);k(SQL12.SWB.TSQLQUERY.F1);k(MISCELLANEOUSFILESPROJECT);k(DevLang-TSQL)%26rd%3Dtrue&view=sql-server-ver15