- 카테고리:
숫자 함수 (반올림 및 잘림)
TRUNCATE , TRUNC¶
입력 식을 0에 가장 가까운(또는 동일한) 값으로 반내림합니다. 소수 자릿수 매개 변수로 지정한 값에 따라 변환이 제거될 수 있습니다.
소수점 뒤의 모든 자릿수로 정수를 생성합니다. 숫자에 TRUNC 를 사용하는 것이 기본값이며 가장 일반적인 방법입니다.
소수점 뒤의 소수 자릿수 중 일부가 누락되어 정확도가 떨어지는 값을 생성합니다.
소수점 뒤의 모든 소수 자릿수와 소수점 왼쪽의 일부 소수 자릿수를 더하여 10, 100 또는 기타 10의 거듭제곱인 값을 생성합니다.
TRUNCATE 및 TRUNC 함수는 동의어입니다.
참고
TRUNC 에 과부하가 걸렸습니다. 또한 날짜/시간 값과 함께 사용하여 날짜, 시간 및 타임스탬프 를 지정된 부분으로 잘라낼 수 있습니다. 숫자 TRUNC 에는 필수적 매개 변수와 선택적 매개 변수가 하나씩 있습니다. 날짜/시간 TRUNC 에는 2개의 필수 매개 변수가 있습니다.
구문¶
TRUNCATE( <input_expr> [ , <scale_expr> ] )
TRUNC( <input_expr> [ , <scale_expr> ] )
인자¶
input_expr
연산할 값 또는 식입니다. 데이터 타입은 FLOAT 또는 NUMBER 와 같은 숫자 데이터 타입 중 하나여야 합니다.
scale_expr
소수점 뒤에 포함할 자릿수입니다. -38에서 +38 사이의 정수로 평가되는 식을 사용합니다.
기본
scale_expr
은 0이며, 이는 함수가 소수점 이하의 모든 숫자를 제거함을 의미합니다.소수 자릿수에 대한 정보는 아래의 사용법 노트 섹션을 참조하십시오.
반환¶
반환된 값의 데이터 타입은 NUMBER입니다(정밀도, 스케일).
입력 스케일이 0보다 크거나 같으면 출력 스케일은 일반적으로 입력 스케일과 일치합니다.
입력 스케일이 음수이면 출력 스케일은 0입니다.
예:
TRUNCATE(3.14, 1)
에서 반환된 데이터 타입은NUMBER(4, 1)
입니다.TRUNCATE(3.14, 0)
에서 반환된 데이터 타입은NUMBER(4, 0)
입니다.TRUNCATE(33.33, -1)
에서 반환된 데이터 타입은NUMBER(5, 0)
입니다.
스케일이 0이면 값은 사실상 정수입니다.
사용법 노트¶
scale_expr
이 음수인 경우, 숫자를 조정할 소수점 앞의 자릿수를 지정합니다. 예를 들어, 스케일이 -2이면 결과는 100의 배수입니다.scale_expr
이 입력 식보다 크면 함수는 아무런 영향을 미치지 않습니다.input_expr
또는scale_expr
이 NULL이면 결과는 NULL입니다.잘라내기는 더 작은 숫자가 아니라 0을 향해 수행됩니다. 예를 들어
TRUNCATE(-9.6)
은-10
이 아닌-9
가 됩니다.
예¶
다음 예에서는 숫자 값에 대한 TRUNC 함수를 보여줍니다. 날짜, 시간 및 타임스탬프 잘라내기 예는 TRUNC 의 날짜/시간 양식 섹션을 참조하십시오.
이 예제에서는 이 샘플 테이블의 데이터를 사용합니다. 이 테이블에는 -975.975와 135.135라는 두 개의 소수점 숫자와 TRUNC 함수를 사용하여 소수 자릿수 매개 변수에 사용할 서로 다른 값이 포함되어 있습니다.
CREATE TABLE numeric_trunc_demo (n FLOAT, scale INTEGER);
INSERT INTO numeric_trunc_demo (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);
소수 자릿수 매개 변수를 지정하지 않은 경우 숫자 매개 변수가 있는 TRUNC 의 기본 동작은 매개 변수와 같거나 0에 가까운 정수 값을 반환하는 것입니다. 소수 자릿수 매개 변수를 0으로 지정해도 같은 효과가 있습니다.
SELECT DISTINCT n, TRUNCATE(n)
FROM numeric_trunc_demo ORDER BY n;
+----------+-------------+
| N | TRUNCATE(N) |
|----------+-------------|
| -975.975 | -975 |
| 135.135 | 135 |
+----------+-------------+
다음 예는 양수와 음수에 0, 양수 또는 음수 소수 자릿수 매개 변수를 적용한 TRUNC 함수를 호출한 결과를 보여줍니다.
0 소수 자릿수 매개 변수를 지정하면 소수점 뒤의 모든 자릿수가 제거되어 정수 값이 생성됩니다.
양수 소수 자릿수 매개 변수를 지정하면 소수점 뒤에 지정된 수의 유효 자릿수가 남습니다.
음수 소수 자릿수 매개 변수를 지정하면 소수점 왼쪽에 있는 해당 자릿수가 0으로 바뀝니다.
+38보다 크거나 -38보다 작은 소수 자릿수를 지정하는 것은 +38 또는 -38을 지정하는 것과 동일합니다.
SELECT n, scale, TRUNC(n, scale)
FROM numeric_trunc_demo ORDER BY n, scale;
+----------+-------+-----------------+
| N | SCALE | TRUNC(N, SCALE) |
|----------+-------+-----------------|
| -975.975 | -1 | -970 |
| -975.975 | 0 | -975 |
| -975.975 | 2 | -975.97 |
| 135.135 | -2 | 100 |
| 135.135 | 0 | 135 |
| 135.135 | 1 | 135.1 |
| 135.135 | 3 | 135.135 |
| 135.135 | 50 | 135.135 |
| 135.135 | NULL | NULL |
+----------+-------+-----------------+