본문 바로가기
DB

오라클 : 글자를 자르거나 바꿔주는 함수 TRIM, SUBSTR, REPLACE

by 스노위13 2022. 8. 10.

1. TRIM, LTRM, RTRIM
- TRIM: 양쪽 공백 제거
- LTRM: 왼쪽 공백만 제거 
- RTRIM: 오른쪽 공백만 제거

아래의 예시를 통해 살펴보자

SELECT LTRIM('   안녕 하세요   '),
       RTRIM('   안녕 하세요   '),
       TRIM('   안녕 하세요   ')
FROM dual;

이는 아래와 같은 결과로 출력된다.

회원가입을 할 때 공백이 있는 경우를 방지하기 위해서 많이 사용한다. 위의 결과처럼 글자 안에 있는 공백은 제거하지 않으니 주의할 것

2. SUBSTR
- 사용법 : SUBSTR(문자열, 시작 번호, 길이) 
- 문자열에서 시작 번호부터 정해진 길이만큼 문자열을 자른 뒤에 반환한다.
- 길이를 적지 않고 SUBSTR(문자열, 시작 번호)로 쓰면 시작 번호부터 나머지 모든 문자를 반환해준다. 

아래의 예시를 통해 살펴보자

SELECT SUBSTR('ABCD EFG',1,4),
       SUBSTR('ABCD EFG',2,4),
       SUBSTR('ABCD EFG',3),
       SUBSTR('ABCD EFG',-4,2) --시작 번호가 마이너스면 뒤에서
FROM dual;

이는 아래와 같은 결과로 출력된다.

SUBSTR은 아래와 같이 활용도 가능하다

문제1 : memeber 테이블의 고객 정보를 "이름 : ㅇㅇㅇ, 주민번호 : 760115-1****** "로 각각이 한 컬럼에 나오게 출력하시오

SELECT '이름:' || mem_name || ' 주민번호:' || mem_regno1 
       || '-' || rpad(SUBSTR(mem_regno2,1,1), 7, '*') as 정보     --|| 문자열 붙여주는 문자연산자
FROM member;


위와 같이 만들면 아래와 같이 뜬다!

문제 2 : eamil 주소에서 @ 앞 문자열을 id ,  @ 뒤 문자열을 domain으로 출력하시오

SELECT SUBSTR(mem_mail,1,INSTR(mem_mail,'@')-1) as ID
       ,SUBSTR(mem_mail,INSTR(mem_mail,'@')+1) as DOMAIN
       ,mem_mail
FROM member;

이처럼 다양하게 활용되기 때문에 꼭 기억해두자

3. REPLACE
- REPLACE(문자열, 찾을 문자, 바꿀 문자): 문자열에서 찾을 문자를 찾아서 바꿀 문자로 변경한다. 

아래의 예시를 통해 살펴보자

SELECT REPLACE('나는 너를 모르는데 너는 나를 알겠는가?','나는','너를')
FROM dual;

이는 아래와 같은 결과로 나온다. 

이때 찾을 문자가 정확하게 '나는'이어야 '너는'으로 변경한다는 것을 주의하자.

댓글