문제
SUBSTR 함수 실행 결과 중 다른 결과가 나오는 것을 고르시오.
① SUBSTR('abcdefgh', 7) ② SUBSTR('abcdefgh', -2) ③ SUBSTR('abcdefgh', 8, -2) ④ SUBSTR('abcdefgh', INSTR('abcdefgh', 'g'), 2)
정답
3번
해설
정답: 3. 1번, 2번, 4번은 모두 'gh'를 반환하지만 3번은 길이 인수에 음수가 들어가므로 NULL을 반환한다.
오답 풀이
- 1번: 7번째 문자부터 끝까지 반환하므로 'gh'이다.
- 2번: 뒤에서 두 번째 문자부터 끝까지 반환하므로 'gh'이다.
- 3번: Oracle에서 SUBSTR의 길이가 음수이면 NULL이 반환된다.
- 4번: INSTR('abcdefgh', 'g')는 7이므로 SUBSTR('abcdefgh', 7, 2)는 'gh'이다.
보충 개념 SUBSTR(문자열, 시작위치, 길이)에서 시작위치가 음수이면 뒤에서부터 위치를 센다. 길이 인수가 생략되면 시작위치부터 끝까지 반환한다.