CAST 연산자를 SELECT 문에서 어떤 값의 데이터 타입을 다른 데이터 타입으로 명시적으로 변환하는데 사용할 수 있다. 조회 리스트 또는 WHERE 절의 값 수식을 다른 데이터 타입으로 변환할 수 있다.
CUBRID에서 CAST 연산자를 사용한 명시적인 타입 변환에 대해서 정리하면 다음의 표와 같다.
|
EN |
AN |
VC |
FC |
VB |
FB |
D |
T |
UT |
DT |
S |
MS |
SQ |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EN |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
AN |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
VC |
예 |
예 |
예[1] |
예* |
예 |
예 |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
FC |
예 |
예 |
예* |
예* |
예 |
예 |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
VB |
아니요 |
아니요 |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
FB |
아니요 |
아니요 |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
D |
아니요 |
아니요 |
예 |
예 |
아니요 |
아니요 |
예 |
아니요 |
예 |
예 |
아니요 |
아니요 |
아니요 |
T |
아니요 |
아니요 |
예 |
예 |
아니요 |
아니요 |
아니요 |
예 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
UT |
아니요 |
아니요 |
예 |
예 |
아니요 |
아니요 |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
DT |
아니요 |
아니요 |
예 |
예 |
아니요 |
아니요 |
예 |
예 |
예 |
예 |
아니요 |
아니요 |
아니요 |
S |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
예 |
예 |
예 |
MS |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
예 |
예 |
예 |
SQ |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
아니요 |
예 |
예 |
예 |
[1] 이 경우에 CAST 연산은 값 수식과 변환할 데이터 타입이 같은 문자 코드 세트를 가질 경우에만 허용된다.
CAST (cast_operand AS cast_target)
cast_operand :
value expression
NULL
cast_target :
data type
다음은 VARCHAR로 저장되어 있는 단위가 kg인 기록을 FLOAT로 명시적으로 변환하여 반환하는 예제이다.
SELECT CAST(score AS FLOAT), unit
FROM history
WHERE unit = 'kg';
어떤 값 수식도 적절한 데이터 타입으로 명시적으로 변환될 수 있다. 대상 데이터 타입은 반드시 유효한 CUBRID 데이터 타입이어야 한다. CAST 변환은 같은 문자 코드 세트를 가지는 데이터 타입끼리만 허용된다. 또한, 근사값으로 표현되는 수치형(예를 들어, FLOAT, DOUBLE)을 문자열로 변환할 때는 모든 유효 숫자를 표현할 수 있는 충분한 길이의 문자열을 입력해야 한다.