카테고리:

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

AS_DECIMAL , AS_NUMBER

선택적 정밀도와 스케일로 VARIANT 값을 고정 소수점 10진수(부동 소수점 값과 일치하지 않음)로 캐스팅합니다.

AS_NUMBER는 AS_DECIMAL의 동의어입니다.

참고 항목:

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

구문

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

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

인자

variant_expr

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

precision

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

scale

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

사용법 노트

  • precision 의 기본값은 38 이고 scale0 입니다.

  • 스케일을 줄일 때 이 함수는 반올림됩니다. 이로 인해, 범위를 벗어난 오류가 발생할 수 있습니다.

이는 함수를 사용하는 방법을 보여줍니다.

테이블과 데이터를 만듭니다.

CREATE TABLE multiple_types (
    binary1 VARIANT,
    date1 VARIANT,
    decimal1 VARIANT,
    time1 VARIANT,
    timestamp1 VARIANT
    );
INSERT INTO multiple_types 
     (binary1, date1, decimal1, time1, timestamp1)
   SELECT 
     TO_VARIANT(TO_BINARY('F0A5')),
     TO_VARIANT(TO_DATE('2018-10-10')), 
     TO_VARIANT(TO_DECIMAL(1.23, 6, 3)),
     TO_VARIANT(TO_TIME('12:34:56')),
     TO_VARIANT(TO_TIMESTAMP_NTZ('2018-10-10 12:34:56'))
     ;

이제 쿼리를 실행합니다.

SELECT AS_DECIMAL(decimal1, 6, 3) AS "Decimal" FROM multiple_types;

출력:

+---------+
| Decimal |
|---------|
|   1.230 |
+---------+
맨 위로 이동