올림, 반올림, 내림 함수
올림 CEILING()
반올림 ROUND()
내림 ROUND() , FLOOR()
CEILING ( numeric_expression )
ROUND ( numeric_expression , length [ ,function ] )
FLOOR ( numeric_expression )
CEILING 예제
다음 예에서는 값이 각각 양수, 음수, 0인 CEILING 함수를 보여 줍니다.
SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.0)
GO
--------- --------- -------------------------
124.00 -123.00 0.00
(1 row(s) affected)
FLOOR 예제
다음 예에서는 FLOOR 함수의 인수로 양수, 음수 및 통화 값을 넣고 계산합니다.
SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45)
--------- --------- -----------
123 -124 123.0000
ROUND 함수
ROUND는 항상 하나의 값을 반환합니다. length가 음수이고 소수점 전의 자릿수보다 클 경우 ROUND는 0을 반환합니다.
예 |
결과 |
ROUND(748.58, -4) |
0 |
length가 음수일 경우 ROUND는 데이터 형식에 상관없이 반올림한 numeric_expression을 반환합니다.
예 |
결과 |
ROUND(748.58, -1) |
750.00 |
ROUND(748.58, -2) |
700.00 |
ROUND(748.58, -3) |
1000.00 |
length
numeric_expression을 반올림하는 전체 자릿수입니다. length는 tinyint, smallint 또는 int여야 합니다. length가 양수일 경우 numeric_expression은 length에서 지정한 소수 자릿수로 반올림됩니다. length가 음수일 경우 numeric_expression은 length에서 지정한 대로 소수점의 왼쪽에서 반올림됩니다.
function
수행할 연산의 종류입니다. function은 tinyint, smallint 또는 int여야 합니다. function을 생략하거나 값이 0(기본값)일 경우 numeric_expression은 반올림됩니다. 0 이외의 값을 지정하면 numeric_expression이 잘립니다.
ROUND 예제
마지막 자릿수가 항상 어림값인 ROUND를 사용하는 두 개의 식을 보여 줍니다.
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO
----------- -----------
123.9990 124.0000
반올림과 어림값를 보여 줍니다.
SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);GO
----------
123.4500
(1 row(s) affected)
--------
100.00
(1 row(s) affected)
두 개의 SELECT 문을 사용하여 반올림과 자르기 간의 차이를 보여 줍니다. 첫 번째 문은 결과를 반올림하고 두 번째 문은 결과를 자릅니다.
SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)
[MSDN LINK]
CEILING : http://msdn2.microsoft.com/ko-kr/library/ms189818.aspx
ROUND : http://msdn2.microsoft.com/ko-kr/library/ms175003.aspx
FLOOR : http://msdn2.microsoft.com/ko-kr/library/ms178531.aspx