WEB/MSSQL

[MSSQL] 소수점 올림/반올림/절삭 관련 쿼리

인생시계 2020. 12. 31. 16:17

[MSSQL] 소수점 올림/반올림/절삭 관련 쿼리

소수점 표현하는 방법들...

 

WITH TMP_A AS
(
SELECT *
  FROM (
          SELECT 'ROUND(12345.1356, 1)' AS TEXT
                     ,  ROUND(12345.1356, 1)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 2)' AS TEXT
                     ,  ROUND(12345.1356, 2)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 3)' AS TEXT
                     ,  ROUND(12345.1356, 3)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 4)' AS TEXT
                     ,  ROUND(12345.1356, 4)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 5)' AS TEXT
                     ,  ROUND(12345.1356, 5)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 0)' AS TEXT
                     ,  ROUND(12345.1356, 0)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -1)' AS TEXT
                     ,  ROUND(12345.1356, -1)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -2)' AS TEXT
                     ,  ROUND(12345.1356, -2)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -3)' AS TEXT
                     ,  ROUND(12345.1356, -3)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -4)' AS TEXT
                     ,  ROUND(12345.1356, -4)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -5)' AS TEXT
                     ,  ROUND(12345.1356, -5)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 3, 0)' AS TEXT    -- 3번째 인자 0이면 반올림, 0이 아닐 경우 절삭, 3번째 인자 값 생략가능
                     ,  ROUND(12345.1356, 3, 0)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, 3, 1)' AS TEXT    -- 3번째 인자 0이면 반올림, 0이 아닐 경우 절삭, 3번째 인자 값 생략가능
                     ,  ROUND(12345.1356, 3, 1)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -1, 0)' AS TEXT   -- 3번째 인자 0이면 반올림, 0이 아닐 경우 절삭, 3번째 인자 값 생략가능
                     ,  ROUND(12345.1356, -1, 0)  AS VALUE
           UNION ALL
          SELECT 'ROUND(12345.1356, -1, 1)' AS TEXT   -- 3번째 인자 0이면 반올림, 0이 아닐 경우 절삭, 3번째 인자 값 생략가능
                     ,  ROUND(12345.1356, -1, 1)  AS VALUE
           UNION ALL
          SELECT 'CEILING(12345.1356)' AS TEXT       -- 소수점 올림
                     ,  CEILING(12345.1356)  AS VALUE
           UNION ALL
          SELECT 'FLOOR(12345.1356)' AS TEXT         -- 소수점 버림
                     ,  FLOOR(12345.1356)  AS VALUE
       )T
)

SELECT *
  FROM TMP_A

 

 

위의 쿼리 실행결과