카테고리:

숫자 함수 (반올림 및 잘림)

CEIL

input_expr 의 값을 가장 가까운, 같거나 큰 정수로 반올림하거나, 소수점 이하의 지정된 자릿수를 가진 가장 가까운, 같거나 큰 값으로 반환합니다.

참고 항목:

FLOOR , ROUND , TRUNCATE , TRUNC

구문

CEIL( <input_expr> [, <scale_expr> ] )
Copy

인자

input_expr

연산할 값 또는 식입니다. 데이터 타입은 FLOAT 또는 NUMBER와 같은 숫자 데이터 타입 중 하나여야 합니다.

scale_expr

출력이 소수점 뒤에 포함해야 하는 자릿수입니다. 식은 -38에서 +38 사이의 정수로 평가되어야 합니다.

기본 scale_expr 은 0이며, 이는 함수가 소수점 이하의 모든 숫자를 제거함을 의미합니다.

스케일에 대한 정보는 아래의 사용법 노트를 참조하십시오.

반환

반환 형식은 입력 형식을 기반으로 합니다.

  • 입력 식이 FLOAT이면 반환되는 타입도 FLOAT입니다.

  • 입력 식이 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 |
+---------------+----------------+
Copy

이 예는 음수로 설정된 스케일을 포함하여 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)
   ;
Copy

출력:

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