카테고리:

변환 함수

CAST , ::

한 데이터 타입의 값을 다른 데이터 타입으로 변환합니다. CAST의 의미 체계는 해당 TO_ datatype 변환 함수의 의미 체계와 동일합니다. 캐스트가 불가능한 경우, 오류가 발생합니다. 자세한 내용은 개별 TO_ datatype 변환 함수를 참조하십시오.

:: 연산자는 CAST에 대한 대체 구문을 제공합니다.

참고 항목:

TRY_CAST

구문

CAST( <source_expr> AS <target_data_type> )
  [ RENAME FIELDS | ADD FIELDS ]

<source_expr> :: <target_data_type>
Copy

인자

source_expr

다른 데이터 타입으로 변환할, 지원되는 모든 데이터 타입의 식입니다.

target_data_type

식을 변환할 데이터 타입입니다. 데이터 타입이 정밀도 및 스케일 (숫자/소수점의 경우)과 같은 추가 속성을 지원하는 경우, 속성이 포함될 수 있습니다.

RENAME FIELDS

정형 OBJECT 의 경우 OBJECT를 변경하여 다른 키-값 페어를 사용하도록 지정합니다. 원래 오브젝트의 값은 나타나는 순서대로 새 키-값 페어에 복사됩니다.

예를 보려면 예: OBJECT에서 키 이름 변경하기 를 참조하십시오.

ADD FIELDS

정형 OBJECT 의 경우 OBJECT에 키-값 페어를 추가하도록 지정합니다.

예를 보려면 예: OBJECT에 키 추가하기 를 참조하십시오.

새로 추가된 키의 값은 NULL로 설정됩니다. 이러한 키에 값을 할당하려면 대신 OBJECT_INSERT 함수를 호출하십시오.

사용법 노트

  • 스케일이 입력 값을 유지하기에 충분하지 않은 경우, 함수는 값을 반올림합니다.

  • 정밀도가 입력 값을 유지하기에 충분하지 않은 경우, 함수에서 오류가 발생합니다.

  • Parquet 파일로 데이터를 언로딩하는 동안 숫자 열이 정수 데이터 타입의 형식으로 명시적으로 캐스팅되면 Parquet 파일에서 이러한 열의 데이터 타입은 INT입니다. 자세한 내용은 명시적으로 숫자 열을 Parquet 데이터 타입으로 변환 섹션을 참조하십시오.

숫자가 포함된 문자열을 지정된 스케일(2)의 10진수로 변환합니다.

SELECT CAST('1.2345' AS DECIMAL(15,2));
+---------------------------------+
| CAST('1.2345' AS DECIMAL(15,2)) |
|---------------------------------|
|                            1.23 |
+---------------------------------+
Copy

:: 표기법을 사용하여 동일 문자열을 스케일 5의 10진수로 변환합니다.

SELECT '1.2345'::DECIMAL(15,5);
+-------------------------+
| '1.2345'::DECIMAL(15,5) |
|-------------------------|
|                 1.23450 |
+-------------------------+
Copy

숫자를 정수로 변환합니다.

SELECT CAST(1.56 AS INTEGER);
+-----------------------+
| CAST(1.56 AS INTEGER) |
|-----------------------|
|                     2 |
+-----------------------+
Copy

날짜가 포함된 문자열을 타임스탬프로 변환합니다.

SELECT CAST('05-Mar-2014' AS TIMESTAMP);
+----------------------------------+
| CAST('05-MAR-2014' AS TIMESTAMP) |
|----------------------------------|
| 2014-03-05 00:00:00.000          |
+----------------------------------+
Copy