쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

TRY_CAST 함수

포커스 모드
TRY_CAST 함수 - Amazon Redshift

CAST 함수와 비교하여 TRY_CAST는 먼저 표현식을 지정된 유형으로 캐스팅하려고 시도합니다. 변환 오류로 인해 캐스팅이 실패하면 작업은 Null을 반환합니다. 변환이 명시적으로 허용되지 않는 경우 작업은 오류를 반환합니다. 아래 사용 노트에서 가능한 변환 목록을 확인할 수 있습니다. 예를 들어 부울을 타임스탬프로 변환하려고 시도하는 것은 허용되지 않습니다.

구문

TRY_CAST(expression AS type)

인수

expression

열 이름이나 리터럴 같이 하나 이상의 값으로 평가되는 표현식입니다. null 값을 변환하면 마찬가지로 null이 반환됩니다. 또한 표현식에는 공백이나 빈 문자열이 포함되어서도 안 됩니다.

type

지원되는 데이터 유형 중 하나입니다. 데이터 유형에 대한 전체 목록은 데이터 타입 섹션을 참조하세요. 지원되는 소스 데이터 유형 및 대상 데이터 유형 쌍의 목록은 아래 사용 노트를 참조하세요.

반환 타입

TRY_CAST는 type 인수에서 지정하는 데이터 유형을 반환합니다. 변환에 실패하면 작업이 Null을 반환합니다.

사용 노트

다음은 Amazon Redshift가 TRY_CAST에 대해 지원하는 소스 데이터 유형 및 대상 데이터 유형 쌍의 목록입니다.

BOOL

SMALLINT, INT, BIGINT, SUPER

SMALLINT

BOOL, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

INT

BOOL, SMALLINT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

BIGINT

BOOL, SMALLINT, INT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

DECIMAL

SMALLINT, INT, BIGINT, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

REAL

SMALLINT, INT, BIGINT, DECIMAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

FLOAT

SMALLINT, INT, BIGINT, DECIMAL, REAL, BPCHAR, TEXT, VARCHAR, SUPER

BPCHAR

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, TIME, TIMETZ, SUPER

TEXT

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, TIME, TIMETZ, SUPER

VARCHAR

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, TIMESTAMP, TIMESTAMPTZ, DATE, TIME, TIMETZ, SUPER

TIMESTAMP

BPCHAR, TEXT, VARCHAR, TIMESTAMPTZ, DATE, TIME

TIMESTAMPTZ

BPCHAR, TEXT, VARCHAR, TIMESTAMP, DATE, TIME, TIMETZ

DATE

BPCHAR, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ

TIME

BPCHAR, TEXT, VARCHAR

TIMETZ

BPCHAR, TEXT, VARCHAR

SUPER

SUPER는 DATE, TIME, TIMETZ, TIMESTAMP 및 TIMESTAMPTZ를 제외한 다른 데이터 유형으로 변환할 수 있습니다.

예시

다음 예제에서는 STRING을 INTEGER로 캐스팅합니다.

SELECT TRY_CAST('123' AS INT); int ---- 123

다음 예는 Null을 반환합니다. STRING을 INTEGER로 변환하는 것은 허용되므로 TRY_CAST는 오류를 반환하지 않지만 'foo'는 정수가 아니므로 함수는 Null을 반환합니다.

SELECT TRY_CAST('foo' AS INT)

다음 예제에서는 BOOLEAN을 TIMESTAMP로 변환할 수 없으므로 오류를 반환합니다.

SELECT TRY_CAST(true as timestamp);

TRY_CAST는 변환에 실패할 경우 즉시 오류를 반환하는 대신 Null을 반환하므로 TRY_CAST를 사용하여 잘못된 데이터를 필터링할 수 있습니다. Akua Mansa의 연령 열에서 변환 실패로 인해 잘못된 행이 필터링되는 다음 예제를 생각해 보세요.

CREATE TABLE IF NOT EXISTS student_data( name VARCHAR(100) NOT NULL, age VARCHAR(3) NOT NULL, enrollment_date DATE NOT NULL); INSERT INTO student_data (name, age, enrollment_date) VALUES ('Alejandro Rosalez', '10', '01/01/2000'), ('Akua Mansa', 'Ten', '01/01/2000'); SELECT * FROM student_data WHERE TRY_CAST(age AS INT) IS NOT NULL; --Akua is not returned. name | age | enrollment_date -------------------+-----+----------------- Alejandro Rosalez | 10 | 01/01/2000

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.