2013-12-22 5 views
1

을 사용하여 열에서 특정 문자를 보관 : 내가 SQL을 사용하여 다음 테이블을 만든 SQL

create table TableName(col1 string1(character varying(5000), col2 int); 

가 지금 같은 문자열 1에서 모든 문자를 유지하려면 : ", ', AZ, AZ, 숫자, /. 나는 문자열 1의 문자의 나머지 부분을 삭제할. 내가 포스트그레스 SQL 9.1에서 일하고 있습니다.

내가 이것을 달성 할 수있는 몇 가지 방법이 있나요?

Sample Data: "http://stackoverflow.com/posts/20726193/edit\0 [email protected]#$$%%^ abc def" 
Result: "http://stackoverflow.com/posts/20726193/edit abc def" 
+0

제목이 "특정 행 삭제"입니다. 귀하의 질문은 문자에 관한 것입니까? 당신이 요구하는 것을 명확히하기 위해 샘플 데이터와 원하는 결과를 제공하십시오. –

+0

@GordonLinoff 이것을 지적 해 주셔서 감사합니다. 오타를 매우 불쌍하게 여깁니다. –

답변

2

regexp_replace 아마 앉아있는 당신의 최선의 방법입니다 이 같은 uations, 뭔가 같은 :

regexp_replace(col1, E'[^a-z0-9:/\\s]', 'gi') 

데모 : http://sqlfiddle.com/#!15/031c1/3

는 당신의 정확한 요구에 맞게 문자 클래스를 조정합니다.

+0

조금 설명해 주시겠습니까? –

+0

[regexes] (http://www.postgresql.org/docs/current/interactive/functions-matching.html#FUNCTIONS-POSIX-REGEXP)에 익숙하십니까?)? –

+0

여기서 \ s와 'gi'는 의미가 없습니다. –

관련 문제