CEIL
CEIL (올림)
input_expr의 값을 가장 가까운 같거나 더 큰 정수로 반올림하거나, 소수점 뒤에 지정된 자릿수를 가진 가장 가까운 같거나 더 큰 값으로 반올림한 값을 반환해요.
참조: FLOOR, ROUND, TRUNCATE, TRUNC
본문
구문
CEIL( <input_expr> [, <scale_expr> ] )
인자
input_expr
연산 대상이 되는 값 또는 표현식이에요. 데이터 타입은 DECFLOAT, FLOAT, NUMBER 같은 숫자 데이터 타입 중 하나여야 해요.
scale_expr
출력이 소수점 뒤에 포함하는 자릿수예요.
기본 scale_expr은 0으로, 함수가 소수점 뒤의 모든 자릿수를 제거한다는 뜻이에요.
음수 스케일에 대한 정보는 사용상 주의사항을 참고해요.
반환 값
반환 타입은 입력 타입에 기반해요:
- 입력 표현식이 FLOAT이면 반환 타입은 FLOAT이에요.
- 입력 표현식이 DECFLOAT이면 반환 타입은 DECFLOAT이에요.
- 입력 표현식이 NUMBER이면 반환 타입은 NUMBER예요. 입력 스케일이 상수이면: 입력 스케일이 양수이면 반환 타입은 입력 스케일과 같은 스케일을 갖고, 가능한 어떤 결과도 포함할 만큼 큰 정밀도를 가져요. 입력 스케일이 음수이면 반환 타입은 스케일 0을 가져요. 입력 스케일이 상수가 아니면 반환 타입의 스케일은 입력 표현식과 같아요.
스케일이 0이면 값은 사실상 INTEGER예요.
예를 들어:
CEIL(3.14::FLOAT, 1)에 의해 반환되는 데이터 타입은 FLOAT이에요.CEIL(3.14, 1)에 의해 반환되는 NUMBER는 스케일 1과 정밀도 최소 3을 가져요.CEIL(-9.99, 0)에 의해 반환되는 NUMBER는 스케일 0과 정밀도 최소 2를 가져요.CEIL(33.33, -1)에 의해 반환되는 NUMBER는 스케일 0과 정밀도 최소 3을 가져요.
사용상 주의사항
- scale_expr이 음수이면 숫자를 조정할 소수점 앞의 자릿수를 지정해요. 예를 들어 스케일이 -2면 결과는 100의 배수예요.
- scale_expr이 입력 표현식 스케일보다 크면 함수는 아무 효과가 없어요.
- input_expr 또는 scale_expr 중 하나가 NULL이면 결과는 NULL이에요.
- 음수를 올림하면 값은 0에 더 가까워져요. 예를 들어
CEIL(-1.9)는 -2가 아니라 -1이에요. - 숫자를 위로 반올림하면 데이터 타입의 값 범위 밖으로 나가면 오류가 반환돼요.
예시
이 예시는 scale_expr 파라미터 없이 함수를 보여줘요:
SELECT CEIL(135.135), CEIL(-975.975);
+---------------+----------------+
| CEIL(135.135) | CEIL(-975.975) |
|---------------+----------------|
| 136 | -975 |
+---------------+----------------+
이 예시는 scale_expr 파라미터와 함께, 그리고 스케일이 음수로 설정된 경우를 포함해 함수를 보여줘요:
테이블을 만들고 채우기:
CREATE TRANSIENT TABLE test_ceiling (n FLOAT, scale INTEGER);
INSERT INTO test_ceiling (n, scale) VALUES
(-975.975, -1),
(-975.975, 0),
(-975.975, 2),
( 135.135, -2),
( 135.135, 0),
( 135.135, 1),
( 135.135, 3),
( 135.135, 50),
( 135.135, NULL)
;
출력:
SELECT n, scale, ceil(n, scale)
FROM test_ceiling
ORDER BY n, scale;
+----------+-------+----------------+
| N | SCALE | CEIL(N, SCALE) |
|----------+-------+----------------|
| -975.975 | -1 | -970 |
| -975.975 | 0 | -975 |
| -975.975 | 2 | -975.97 |
| 135.135 | -2 | 200 |
| 135.135 | 0 | 136 |
| 135.135 | 1 | 135.2 |
| 135.135 | 3 | 135.135 |
| 135.135 | 50 | 135.135 |
| 135.135 | NULL | NULL |
+----------+-------+----------------+
더 알아보기
- Numeric functions (Rounding and Truncation) — 숫자 함수 모음
- FLOOR — 내림
- ROUND — 반올림