본문 바로가기
Database/SQL

[Oracle/SQL] SUBSTR, INSTR 문자열 함수

by LasBe 2021. 12. 8.
반응형

⚡️문자열 자르기


📌 SUBSTR(컬럼명, 시작 위치, 문자 개수)

 

문자열에서 원하는 문자만 추출 하고 싶을 때 사용한다.

 

주민등록번호에서 성별을 구분하려 할 때 7번 째 숫자가 필요하다.

주민등록번호 컬럼 jumin, 시작 위치에는 7, 원하는 문자 개수는 1개이니 1을 넣어준다.

select name, substr(jumin, 7, 1) "주민등록번호 7번째"
from student;

 

 

 

⚡️원하는 문자의 위치 구하기


📌 INSTR(컬럼, '문자')

 

컬럼에서 찾고 싶은 문자의 위치를 알려주는 함수이다.

STUDENT 테이블의 전화번호 컬럼이다.

만약 지역번호를 구하고 싶으면 ) 이전까지의 숫자를 구해야 될 것이다.

문제는 지역번호의 숫자가 3자리로 통일되지 않는다는 것이다.

 

우선 각 학생별 괄호의 위치를 알아보자.

select name, tel, instr(tel, ')')
from student;

 

instr로 문자의 자리를 구하는 것을 알았으니 문자 추출은 substr 함수와 함께 이용한다.

select name, tel, substr(tel, 1, instr(tel, ')')-1) 지역번호
from student;

substr 함수의 마지막 부분에 instr 함수를 이용해 원하는 만큼 문자열을 잘라내 보았다.

 

 

그리고 만약 원하는 문자의 2번째 위치를 알고 싶다면 순번의 값을 하나 더 넣어주면 된다.

select name, tel, instr(tel, 0, 2)
from student
order by 3 desc;

 

반응형

댓글


오픈 채팅