카테고리:

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

AS_<오브젝트_유형_>

이 함수 집합은 VARIANT 값을 다른 데이터 타입으로 엄격하게 캐스팅하는 데 사용할 수 있습니다.

참고 항목:

IS_<오브젝트_유형_>

일반적인 사용법 노트

  • VARIANT 인자의 값 형식이 출력 값과 일치하지 않으면 NULL이 반환됩니다. 예를 들어, DATE 를 포함하지 않는 VARIANT 값이 AS_DATE()에 전달되면 NULL이 반환됩니다.

  • 입력이 NULL이면 출력은 NULL입니다.

vartab 테이블의 베리언트 형식 열에서 모든 숫자 값의 평균을 계산합니다.

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

CREATE OR REPLACE TABLE vartab (n NUMBER(2), v VARIANT);

INSERT INTO vartab
    SELECT column1 AS n, PARSE_JSON(column2) AS v
    FROM VALUES (1, 'null'), 
                (2, null), 
                (3, 'true'),
                (4, '-17'), 
                (5, '123.12'), 
                (6, '1.912e2'),
                (7, '"Om ara pa ca na dhih"  '), 
                (8, '[-1, 12, 289, 2188, false,]'), 
                (9, '{ "x" : "abc", "y" : false, "z": 10} ') 
       AS vals;
Copy

둘째, 값의 데이터 타입을 표시합니다(일부는 숫자이고 일부는 그렇지 않음).

select n, as_real(v), typeof(v)
    from vartab
    order by n;
+---+------------+------------+
| N | AS_REAL(V) | TYPEOF(V)  |
|---+------------+------------|
| 1 |       NULL | NULL_VALUE |
| 2 |       NULL | NULL       |
| 3 |       NULL | BOOLEAN    |
| 4 |     -17    | INTEGER    |
| 5 |     123.12 | DECIMAL    |
| 6 |     191.2  | DOUBLE     |
| 7 |       NULL | VARCHAR    |
| 8 |       NULL | ARRAY      |
| 9 |       NULL | OBJECT     |
+---+------------+------------+
Copy

셋째, VARIANT 열에서 모든 숫자 값의 평균을 계산합니다.

select avg(as_real(v)) from vartab;
+-----------------+
| AVG(AS_REAL(V)) |
|-----------------|
|    99.106666667 |
+-----------------+
Copy