@ENFJ 2023. 9. 26. 10:36

오라클에서 문자열을 자를 때는 SUBSTR 함수를 사용한다. 다른 DB의 SQL 함수인 SUBSTRING, LEFT, RIGHT 함수와 동일한 기능을 하며, 문자열을 바이트 단위로 자를 때는 SUBSTRB 함수를 사용하면 된다. SUBSTR 함수는 자를 문자열의 시작위치와 자를 길이를 사용하여 문자열을 자르며, 뒤에서 문자열을 자를 때는 시작 위치를 음수(-) 값으로 부여하면 된다.

 

오라클 문자열 자르기

 

문자열 자르기 (SUBSTR)

WITH emp AS (
    SELECT '7566' empno, 'JONES' ename, '매니저' job FROM dual
)

SELECT ename
     , SUBSTR(ename, 2)
     , SUBSTR(ename, 2, 3)
     , job
     , SUBSTR(job, 2, 1)
  FROM emp

 

 

사용법:  SUBSTR("문자열", "시작위치", "길이")

 

SUBSTR(ename, 2): 문자열의 두 번째 위치("O")부터 문자열 끝까지 자른다.

SUBSTR(ename, 2, 3): 문자열의 두 번째 위치("O")부터 세 자리("ONE")까지 자른다.

 

뒤에서부터 문자열 자르기 (SUBSTR)

WITH emp AS (
    SELECT '7566' empno, 'JONES' ename, '매니저' job FROM dual
)

SELECT ename
     , SUBSTR(ename, -3)
     , SUBSTR(ename, -3, 2)
     , job
     , SUBSTR(job, -3, 1)
  FROM emp

 

뒤에서부터 문자열을 자를 때는 시작위치에 음수(-) 값을 입력하면 된다.

 

SUBSTR(ename, -3): 문자열의 뒤에서 세 번째 위치("N")에서 문자열 끝까지 자른다.

SUBSTR(ename, -3, 2): 문자열의 뒤에서 세 번째 위치("N")에서 두 자리("NE")까지 자른다.