SQL - CEIL, FLOOR, ROUND,TRUNC
숫자 데이터형의 소숫점 자리를 처리할 수 있는 함수에 대해 알아보겠습니다.
1. CEIL
주어진 숫자보다 크거나 같은 최소의 정수를 리턴합니다.
CEIL(column | expression)
CEIL 함수에 10.1을 인자로 받아 출력해봅니다.
SELECT CEIL(10.1) FROM DUAL;
10.1 보다 크거나 같은 최소의 정수인 11이 출력되는 것을 확인할 수 있습니다.
2. FLOOR
주어진 숫자보다 작거나 같은 최대의 정수를 리턴합니다.
FLOOR(column | expression)
FLOOR 함수에 10.1을 인자로 받아 출력해봅니다.
SELECT FLOOR(10.1) FROM DUAL;
CEIL 과는 반대로 10.1 보다 작거나 같은 최대의 정수인 10이 출력되는 것을 확인할 수 있습니다.
3. ROUND
소숫점을 n만큼 옮긴다고 가정하고 그 위치의 오른쪽 자리에서 반올림합니다.
ROUND(column | expression, [n])
n이 양수일 땐 오른쪽, 음수일 땐 왼쪽으로 이동합니다.
ROUND 함수에 1234.567 과 케이스 별로 n 값을 인자로 받아 출력해봅니다.
SELECT ROUND(1234.567), ROUND(1234.567, 0),
ROUND(1234.567, 2), ROUND(1234.567, -2)
FROM DUAL;
첫 번째와 두 번째는 둘 다 소숫점 위치에서 오른쪽 숫자가 반올림 되어 1235를 출력합니다.
세 번째는 소숫점을 2 만큼 옮겼다고 가정 했을 때 그 위치는 6과 7 사이입니다.
그러므로 오른쪽 숫자인 7에서 반올림하여 1234.57을 출력합니다.
네 번째는 소숫점을 -2 만큼 옮겼다고 가정 했을 때 그 위치는 2와 3 사이입니다.
그러므로 오른쪽 숫자인 3에서 반올림하여 1200을 출력합니다.
4. TRUNC
소숫점을 n만큼 옮긴다고 가정하고 그 위치의 오른쪽은 버립니다.
TRUNC(column | expression, [n])
n이 양수일 땐 오른쪽, 음수일 땐 왼쪽으로 이동합니다.
TRUNC 함수에 1234.567 과 케이스 별로 n 값을 인자로 받아 출력해봅니다.
SELECT TRUNC(1234.567), TRUNC(1234.567, 0),
TRUNC(1234.567, 2), TRUNC(1234.567, -2)
FROM DUAL;
첫 번째와 두 번째는 둘 다 소숫점 위치에서 오른쪽 숫자부터 버려져 1234를 출력합니다.
세 번째는 소숫점을 2 만큼 옮겼다고 가정 했을 때 그 위치는 6과 7 사이입니다.
그러므로 오른쪽 숫자인 7부터 버려져 1234.56을 출력합니다.
네 번째는 소숫점을 -2 만큼 옮겼다고 가정 했을 때 그 위치는 2와 3 사이입니다.
그러므로 오른쪽 숫자인 3부터 버려져 1200을 출력합니다.