본문 바로가기
Be Smart/SQL

[Oracle] 오라클 SUBSTR 문자열 자르기 사용법

by 반월하 2021. 11. 17.
728x90

오라클 문자열 자르는 방법


substr 개념

substr(문자열, 시작위치)
substr(문자열, 시작위치, 길이)

1. 함수 인자로는 첫번째 문자열과, 두번째는 시작위치, 세번째는 길이입니다.

2. 문자열에 들어갈 수 있는 데이터 타입은
CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB 입니다.

3. 시작위치와 길이에 입력되어야 하는 데이터타입이 NUMBER 타입이거나 정수로 변환이 되는 문자열이여야 합니다.

1. SUBSTR(문자열, 시작위치)

SELECT SUBSTR('안녕하세요ABC', 3) FROM DUAL;

결과 : 하세요ABC

하세요 ABC가 출력되었다. 여기서 인덱스는 0이 아닌 1부터 시작이기 때문에
3번째 글자인 [하] 부터 출력이 되었습니다.

2. SUBSTR(문자열, 시작위치, 길이) 앞에서부터 자르기

SELECT SUBSTR('안녕하세요ABC', 1, 2) FROM DUAL;

결과 : 안녕

길이가 2입니다. 첫번째 문자열인 []부터 두번째 문구인 [] 까지 출력이 되었습니다.

3. SUBSTR(문자열, 시작위치) 뒤에서부터 자르기

SELECT SUBSTR('안녕하세요ABC', -4) FROM DUAL;

결과 : 요ABC

시작위치에 음수를 입력하게 되면 뒤에서 부터 문자열을 자르게 됩니다.
뒤에서 4번째 위치인 [] 부터 출력이 되었습니다.

4. SUBSTR(문자열, 시작위치, 길이) 뒤에서부터 자르기

SELECT SUBSTR('안녕하세요ABC', -4, 2) FROM DUAL;

결과 : 요A

시작위치는 -4로 뒤에서 네번째인 [] 부터 길이가 2자리인 문자열을 출력합니다.

5. 특징

소수점을 입력한 경우 자동으로 정수로 변환 합니다.

SELECT SUBSTR('안녕하세요ABC', 4, 2.5) FROM DUAL 

소수점 2.5 - > 2로 변경

SELECT SUBSTR('안녕하세요ABC', 4, 2) FROM DUAL 와 동일한 결과 출력

결과 : 요A


길이가 1보다 작으면 null을 리턴 합니다.
SUBSTR(문자열, 시작위치, 길이)

SELECT SUBSTR('안녕하세요ABC', 3, 0) FROM DUAL;

결과 : NULL


SUBSTR과 같은 기능이지만 다른 형태의 문자를 사용하는 경우
아래 함수를 사용하시면 도비니다. 문법은 동일합니다.

함수 설명
SUBSTRB 문자 대신 바이트 사용
SUBSTRC 유니코드 문자 사용
SUBSTR2 UCS2 코드단위 사용
SUBSTR4 UCS4 코드포인트 사용

 

728x90

댓글