요약
trim
은 맨 앞 또는 맨 뒤에 연속된 공백 및 특정 문자를 제거할 때 사용
- 문자열 중간에 공백 및 특정 문자를 제거하지는 못함
1. 공백 제거
trim
: 문자열 중간이 아닌 양쪽 끝의 공백만을 제거할 때 활용ltrim
: 왼쪽 공백 제거rtrim
: 오른쪽 공백 제거
replace
: 문자열 내 모든 공백을 제거하고 싶은 경우,replace
를 활용
함수 | 기능 | 결과 |
---|---|---|
trim(' abc ') | 양쪽 공백 제거 | 'abc' |
ltrim(' abc ') | 왼쪽 공백 제거 | 'abc ' |
rtrim(' abc ') | 오른쪽 공백 제거 | ' abc' |
replace(' a b c ', ' ', '') | 문자열 내 모든 공백 제거(= 공백을 모두 빈칸으로 대체) | abc |
2. 특정 문자 제거
trim(option '제거할 패턴' from '제거 대상 문자열')
trim
의 옵션을 활용하여, 문자열 양쪽 끝에 위치한 특정 문자열 제거option
trailing
: 뒤 따라온다 로 패턴을 만족하는 문자열의 뒷부분을 제거leading
: 앞 서다 로 패턴을 만족하는 문자열의 앞부분을 제거both
: 패턴을 만족하는 문자열의 양쪽 부분을 모두 제거
select trim(trailing '-' from '----abc----') -- '----abc'
select trim(leading '-' from '----abc----') -- 'abc----'
select trim(both '-' from '----abc----') -- 'abc'
2.1 예시
- 지번 주소에서
번지
앞 또는 뒷 부분만 가져올 때 활용 trim()
: 번지로 끝나는 경우에 활용 가능regexp_split_to_array()
번지 뒤에 다른 주소가 있는 경우 정규표현식 활용(참고: 정규표현식)
-- 지번 주소 중 번지 앞 부분만 가져오기
select trim(trailing '번지' from '서울특별시 관악구 신림동 611-171번지') -- 서울특별시 관악구 신림동 611-171
select (regexp_split_to_array('서울특별시 동작구 신대방동 607-28번지 206호', '번지'))[1] -- 서울특별시 동작구 신대방동 607-28
3. 수치형 자료인 경우
trim_scale()
활용
3.1 예시
- 정수값이었으나 실수형 데이터 타입으로 인해 생긴 소수점 이하 0들을 제거하기 위함
select trim_scale(234.0000) -- 234
참고사이트