DB + SQL
[SQL] - SQL 공백제거, 문자제거, 문자열 치환 (trim , replace 함수)
dev_SiWoo
2020. 8. 21. 12:52
SQL을 사용해서 데이터를 다룰 때 공백과 관련된 문제가 발생할 수 있는데
이때 공백을 제거하는 함수로 TRIM 함수를 이용할 수 있다.
1
2
3
4
|
SELECT CONCAT(' abcd ', '--') AS a # 공백이 있는 상태
SELECT CONCAT(TRIM(' abcd '), '--') AS a # trim 함수로 공백제거상태
SELECT CONCAT(LTRIM(' abcd '), '--') AS a # 왼쪽 공백제거
SELECT CONCAT(RTRIM(' abcd '), '--') AS a # 오른쪽 공백제거
|
cs |
TRIM 함수는 공백만이 아니라 특정 문자열을 지정해서 지정한 문자열을 제거하는데 사용할 수 있다.
1
2
3
4
5
6
7
|
# 0001234000 : 양쪽 0을 제거
SELECT TRIM(BOTH '0' FROM '000012340000')
# 왼쪽 문자열만 제거
SELECT TRIM(LEADING '#' FROM '####1234####')
# 오른쪽 문자열만 제거
SELECT TRIM(TRAILING '#' FROM '####1234####')
|
cs |
특정 문자열을 다른 문자열로 바꿀 필요가 있는 상황일 때 replace 함수를 통해 해결 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 | # 뮨자열 치환 # replace(컬렴명, 문자열1, 문자열2) : 문자열1 -> 문자열2로 치환 SELECT REPLACE('###1234###', '#', '0') # 모든 공백을 치환을 이용하여 제거 SELECT REPLACE(' 대 한 민 국 ', ' ', '') SELECT REPLACE(' 대 한 민 국 ', ' ', '') # 탭도 공백으로 규정 # 학생이름의 성을 *으로 치환하여 출력하라 SELECT REPLACE(NAME, SUBSTR(NAME,1,1), '*') FROM student; | cs |