SUBSTRING 함수
설명
SUBSTRING 함수는 주어진 문자열에서 시작 위치로부터 선택 사항으로 주어지는 반환할 수 만큼을 추출한다. 추출할 문자수가 생략되면, SUBSTRING은 주어진 시작 위치로부터 스트링의 끝까지를 반환한다.
구문
SUBSTRING(substring_operand FROM integer [FOR integer] )
substring_operand :
bit string
character string
NULL
- substring_operand : 입력 문자열을 지정한다. 비트열 또는 문자열이 올 수 있다. 입력 값이 NULL이면 결과도 NULL이 반환된다.
- integer : 반드시 입력해야 하는 FROM integer 값은 추출할 서브스트링의 시작 위치를 나타낸다. 이 값에 1보다 작은 값이 주어지면, 스트링의 처음 위치(디폴트 값인 1)로 시작 위치가 지정된다. 선택 사항인 FOR integer 값은 스트링의 종류에 따라 추출할 문자 또는 비트 수를 나타낸다. 이 값이 0 보다 작으면, FOR integer 값은 무시된다. FOR 키워드 다음에는 반드시 정수 값을 지정해야 한다.
- FROM integer 값이 서브스트링을 구하고자 하는 스트링의 길이 보다 크면, 결과로 공백 스트링이 반환된다.
- FROM integer 값과 FOR integer 값의 합이 입력 스트링의 길이보다 작으면, FROM integer 값으로 지정되는 시작 위치에서부터 FOR integer 값으로 지정되는 길이만큼 서브스트링이 추출된다. 어떠한 입력 값이라도 NULL이 되면, 결과 또한 NULL이 반환된다.
예제
- 예제 1
- 다음은 입력값에 NULL이 존재할 때의 결과값을 반환하는 예제이다.
SELECT SUBSTRING(NULL FROM 2) FROM db_root;
- 예제 2
- 다음은 문자열에서 13번째 위치부터의 문자열을 반환하는 예제이다.
SELECT SUBSTRING('United Arab Emirates' FROM 13) FROM db_root;
- 예제 3
- 다음은 문자열에서 8번째 위치부터 4개의 문자를 반환하는 예제이다.
SELECT SUBSTRING('United Arab Emirates' FROM 8 FOR 4) FROM db_root;
- 예제 4
- 다음은 SUBSTRING 함수에서 FROM 이하 값이 1보다 작을 경우, 디폴트 값인 1의 위치부터 문자 2개를 추출하는 예제이다.
SELECT SUBSTRING('United Arab Emirates' FROM -9 FOR 2) FROM db_root;