2013-04-10 2 views
3

열 유형을 "character varying (15)"에서 정수로 변경하려고합니다.postgresql 열을 정수로 변하는 문자로 변환

"= # SELECT columnX from tableY limit (10);"을 실행하면 " 내가 실행하는 경우

columnX 
---------- 
34.00 
12.00 
7.75 
18.50 

4.00 
11.25 

18.00 
16.50 

"= # \ D + COLUMNX는"내가 돌아올 : 내가 돌아올 내가 높고 낮은 검색 한

 Column  |   Type   |       Modifiers       | Storage | Description 

columnX  | character varying(15) | not null              | extended | 

는 PostgreSQL의 IRC 채널에 요청,하지만 아무도 를 변경하는 방법을 알아낼 수 있었다, 나는 시도했다 : 또한

ALTER TABLE race_horserecord ALTER COLUMN win_odds TYPE integer USING (win_odds::integer); 

:

ALTER TABLE tableY ALTER COLUMN columnX TYPE integer USING (trim("columnX")::integer); 
,

때마다 난 다시 얻을 :

"오류 : 유효하지 않은 입력 구문을 정수에 대해"34.00 ","


어떤 도움을 주시면 감사하겠습니다.

답변

7

시도 USING (win_odds::numeric::integer).

부분 값을 반올림합니다 (예 : = 8).

+0

이제 오류가 발생합니다 : 숫자 형식의 입력 구문이 잘못되었습니다. ""그래서 데이터가있는 행에 대해서는 작동하지만 비어있는 문자열이있는 행이 있으면 오류가 발생합니다. ? – bk201

+0

@ bk201'UPDATE TABLE SET columnX = '0'을 실행하십시오. 여기서 columnX = '''first? –

+0

예! 일한 고마워요, 너무 의미가 있습니다! – bk201