MID 함수는 문자열 string 내의 position 위치로부터 substring_length 길이의 문자열을 추출하여 반환한다. 만약, position 값으로 음수가 지정되면, 문자열의 끝에서부터 역방향으로 위치를 산정한다. substring_length는 생략할 수 없으며, 음수가 지정되는 경우 이를 0으로 간주하여 공백 스트링을 반환한다.
MID 함수는 SUBSTR 함수와 유사하게 동작하나, 비트 스트링에 대해서는 적용할 수 없고, substring_length 인자를 생략할 수 없으며, substring_length에 음수가 지정되면 공백 스트링을 반환한다는 차이점이 있다.
MID( string, position, substring_length )
string :
• character string
• NULL
position :
• integer
• NULL
substring_length :
• integer
• NULL
CREATE TABLE mid_tbl(a VARCHAR);
INSERT INTO mid_tbl VALUES('12345abcdeabcde');
--it returns empty string when substring_length is 0
SELECT MID(a, 6, 0), SUBSTR(a, 6, 0), SUBSTRING(a, 6, 0) FROM mid_tbl;
==================================================================
'' '' ''
--it returns 4-length substrings counting from the 6th position
SELECT MID(a, 6, 4), SUBSTR(a, 6, 4), SUBSTRING(a, 6, 4) FROM mid_tbl;
==================================================================
'abcd' 'abcd' 'abcd'
--it returns a empty string when substring_length < 0
SELECT MID(a, 6, -4), SUBSTR(a, 6, -4), SUBSTRING(a, 6, -4) FROM mid_tbl;
==================================================================
'' NULL 'abcdeabcde'
--it returns 4-length substrings at 6th position counting backward from the end
SELECT MID(a, -6, 4), SUBSTR(a, -6, 4), SUBSTRING(a, -6, 4) FROM mid_tbl;
==================================================================
'eabc' 'eabc' '1234'