카테고리:

반정형 및 정형 데이터 함수 (캐스트)

AS_DECIMAL , AS_NUMBER

선택적 정밀도와 소수 자릿수로 VARIANT 값을 고정 소수점 NUMBER 값으로 형 변환합니다. 이 함수는 부동소수점 값을 형 변환하지 않습니다.

AS_DECIMAL 은 AS_NUMBER 의 동의어입니다.

DECIMAL 데이터 타입은 NUMBER 데이터 타입과 동의어입니다.

참고 항목:

AS_<오브젝트_유형_> , AS_DOUBLE , AS_REAL , AS_INTEGER

구문

AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )

AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Copy

인자

variant_expr

VARIANT 형식의 값으로 평가되는 식입니다.

precision

저장할 10진수의 유효 자릿수입니다.

기본값은 38 입니다.

scale

소수점 이하 유효 자릿수입니다.

기본값은 0 입니다.

반환

함수는 NUMBER 또는 NULL 형식의 값을 반환합니다.

  • variant_expr 인자에 있는 값의 유형이 DECIMAL 또는 NUMBER 인 경우 함수는 NUMBER 유형의 값을 반환합니다.

  • variant_expr 인자에 있는 값의 유형이 출력 값의 유형과 일치하지 않으면 함수는 NULL 을 반환합니다.

  • variant_expr 인자가 NULL 인 경우 함수는 NULL 을 반환합니다.

사용법 노트

소수 자릿수을 줄일 때 이 함수는 결과를 반올립합니다. 이로 인해, 범위를 벗어난 오류가 발생할 수 있습니다.

테이블을 만들고 이에 데이터를 로딩합니다.

CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);

INSERT INTO as_number_example (number1)
  SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Copy

쿼리에서 AS_NUMBER 함수를 사용하여 VARIANT 값을 NUMBER 값으로 형 변환합니다.

SELECT AS_NUMBER(number1, 6, 3) number_value
  FROM as_number_example;
Copy
+--------------+
| NUMBER_VALUE |
|--------------|
|        2.340 |
+--------------+