프로그래밍/DB

postgreSQL - 필드에서 공백 제거하기

kugancity 2018. 3. 18. 14:52
반응형


postgreSQL 의 필드에서 공백 제거하기 





보통 trim()을 사용해서 제거하지만 

trim 함수는 모든 공백을 다 제거하는 것이 아니라 

ascii 코드가 32인 공백만 제거한다. 



참고로 공백 부분의 ascii 코드 확인 쿼리는 아래와 같다. 



select ascii(left(name, 1))

from tablename

where id = 723;



검사해보니 9(탭문자)가 나왔다. 


필드에서 탭 등의 모든 공백을 다 제거하기 위해서는 

정규식 표현을 사용해야 한다. 




update tablename set name = REGEXP_REPLACE(name, '^\s+', '');




 정규식 ^\s+에서 ^은 문장의 시작을, \s는 공백을, +은 1번 이상을 의미한다. 



기존의 필드와 새로 업데이트한 필드를 비교해보니

이름 앞의 공백이 제대로 제거된 것을 확인되었다. 




# select name, name_api from 테이블이름 where name != name_api;



                 name                   |                     name_api

------------------------------------------+--------------------------------------------------

 (893-15)                                 |         (893-15)

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌

 (주)HTC 까사빌                           |         (주)HTC 까사빌







참고: http://www.postgresqltutorial.com/postgresql-trim-function/


728x90
반응형