하나씩 자세히 살펴봅시다.
• SUBSTR( 'ABCDEFG', 1, 3 ): 첫 번째 자리에서 세 글자를 잘라 반환하므로 ‘ABC’를 반환
• SUBSTR( 'ABCDEFG', 0, 3 ): 0은 1을 의미하므로 위와 같은 결과인 ‘ABC’를 반환
• SUBSTR( 'ABCDEFG', 1 ): n2를 생략해서 첫 번째 자리에서 전체를 반환하므로 ‘ABCDEFG’를 반환
• SUBSTR( 'ABCDEFG', -2 ): n1이 음수이므로 오른쪽 끝에서 두 번째 글자인 ‘F’에서 시작, 그런데 n2가 생략되어 ‘F’ 이후 오른쪽 나머지 글자를 가져오므로 ‘FG'를 반환
• SUBSTR( 'ABCDEFG', -2, 1 ): n1이 -2이므로 오른쪽 끝 두 번째 자리인 ‘FG’를 반환하는데, n2가 1이므로 한 글자를 잘라 반환하므로 ‘F’를 반환
• SUBSTR( 'ABCDEFG', 2, -1 ): n2가 음수이므로 n1에 상관없이 NULL을 반환
주의할 점은 n1이 음수이고 n2가 양수인 경우, n1은 오른쪽 끝에서 역순으로 위치를 세어 시작 위치를 잡은 다음 n2 길이만큼의 글자를 잘라 가져온다는 점입니다. 조금 혼동될 수 있는데 잘 생각해 보면 이해가 갈 거예요.