postgreSQL - 필드에서 공백 제거하기
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/