:: 연산자는 casting 연산자입니다. 자료형을 강제로 변경시켜 주는 연산자이지요. 즉 text 자료형을 정수형으로 char 형으로 원하는대로 변경할수 있습니다.
그리고 a 라는 자료형이 char 형일 경우 7.2 에서는 text 자료형으로 casting 해야만이 int 형으로 casting 이 가능합니다. char 형은 직접적으로 int 형으로 casting 이 불가능하도록 되어 있습니다. 6.5.3 에서는 아마도 이것이 다른 것 같습니다. char 형이 직접적으로 int 형으로 casting 이 가능한 것 같군요.
-- 이상학 님이 쓰신 글:
>> 먼저 답변 감사드립니다.
>> 그런데 select max(trim(a)::text::int) from t; 하면
>>
>> " Unable to locate type oid 700 in catalog "
>>
>> 이런 메세지가 뜨고 마는군요. 지원이 안되는건가요?
>> postgresql 6.5.3 입니다.
>>
>> 그래서 다각도로 테스트해보다가
>>
>> select max(trim(a)::int) from t;
>>
>> 이렇게 하니까 나오더라구요. 아무튼 정말 감사합니다.
>>
>> 그런데 "::int" 가 의미하는게 변환인가요? ^^ 초보라서..
>>
>>
>>
>>
>>
>>
>>
>>
>> -- 정재익 님이 쓰신 글:
>> >> advance=# create table t (a char(4));
>> >> CREATE
>> >> advance=# insert into t values ('23');
>> >> INSERT 468392 1
>> >> advance=# insert into t values ('32');
>> >> INSERT 468393 1
>> >> advance=# insert into t values ('55');
>> >> INSERT 468394 1
>> >>
>> >> advance=# select max(trim(a)::text::int) from t;
>> >> max
>> >> -----
>> >> 55
>> >> (1 row)
>> >>
>> >> 위의 query를 보시면 대략 감을 잡을 수 있으실듯 합니다.
>> >> 테스트는 7.2 에서 했습니다. :-)
>> >>
>> >> -- 이상학 님이 쓰신 글:
>> >> >> postgresql 6.5.3 을 쓰고 있는데요.
>> >> >>
>> >> >> 1,2,3 ... 이렇게 숫자로 되어있는 칼럼이 char 라서
>> >> >>
>> >> >> 이것의 최대값을 뽑으려면, 제대로 안되네요.
>> >> >>
>> >> >> 그래서 이것을 int로 변환해서 max값을 뽑으려고 하는데요..
>> >> >>
>> >> >> 무슨 방법이 없을까요? oracle에는 to_number() 같은 메쏘드가 있던데..
>> >> >>
>> >> >> 이건 없는거 같아요.
|