CEIL

CEIL (올림)

input_expr의 값을 가장 가까운 같거나 더 큰 정수로 반올림하거나, 소수점 뒤에 지정된 자릿수를 가진 가장 가까운 같거나 더 큰 값으로 반올림한 값을 반환해요.

참조: FLOOR, ROUND, TRUNCATE, TRUNC

출처: Snowflake SQL Reference - CEIL

본문

구문

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 |
+----------+-------+----------------+

더 알아보기