프로그래밍/오라클 SQL과 PLSQL

[오라클 SQL과 PLSQL] 79p SUBSTR/INSTR 퀴즈

이자다 2023. 3. 14. 18:01
반응형
select initcap(name) name, tel tel, substr(tel, 1, instr(tel, ')') -1) "AREA CODE"
from student
where deptno1 = 201;

 

풀이과정

 

1. name 열에 첫글자가 대문자니까 initcap() 함수를 이용해 name을 출력.

 

2. tel 은 따로 손댈 거 없으니 그대로 출력

 

3. 지역번호는 전화번호의 ')' 이전까지의 문자를 추출해야함. 문자열에서 지정한 시작 위치부터 n글자를 추출 가능한 substr() 함수를 이용해야함.

 

4. substr() 로 추출한 문자열은 tel. 시작 위치는 첫번째 문자부터 ')' 이전이니까 1. ')' 이전의 위치를 알아내려면 특정 글자의 위치를 알아내는 instr 함수가 필요함. ')'를 찾을 문자열 tel과 찾을 문자 ')'를 인자로 넣어주고 ')' 이전 위치를 반환하기 위해 -1 을 해준다.

 

5. 나머지는 문제에서 안내된 대로 입력하면 답 나온다.

반응형