- 카테고리:
문자열 및 이진 함수 (일반)
INSERT¶
지정된 위치에서 시작하여, 지정된 길이의 하위 문자열을 새 문자열 또는 이진 값으로 바꿉니다.
이 함수를 INSERT DML 명령과 혼동해서는 안 됩니다.
구문¶
INSERT( <base_expr>, <pos>, <len>, <insert_expr> )
인자¶
base_expr
문자를 삽입/바꾸려는 문자열 또는 BINARY 식입니다.
pos
문자 삽입을 시작할 오프셋입니다 0이 아니라 1부터 시작합니다. 즉, 문자열의 첫 번째 문자는 위치 0이 아닌 위치 1에 있는 것으로 간주됩니다. 예를 들어, 문자열의 시작 부분에 삽입하려면
pos
를 1로 설정하십시오.유효한 값은 1에서, 문자열 길이보다 1만큼 더 큰 값(해당 값 포함) 사이입니다.
pos
를 문자열 길이보다 1만큼 더 크게 설정하면 이 작업은 추가와 동일합니다. (또한 마지막 문자 이후의 문자를 삭제하려고 하면 안 되므로len
매개 변수가 0이어야 합니다.)len
바꿀 문자의 수입니다(
pos
에서 시작). 유효한 값의 범위는 0에서,pos
와 문자열 끝 사이의 문자 수입니다. 이 값이 0인 경우, 기존 문자를 삭제하지 않고 새 문자를 추가한다는 의미입니다.insert_expr
base_expr
에 삽입할 문자열입니다. 이 문자열이 비어 있고len
가 0보다 크면 이 작업은 사실상 삭제가 됩니다(일부 문자는 삭제되고 아무것도 추가되지 않음).
사용법 노트¶
base_expr
및insert_expr
은 동일한 데이터 타입이어야 합니다. 둘 다 문자열(예: VARCHAR)이거나 둘 다 이진이어야 합니다.인자 중 하나라도 NULL인 경우, 반환된 값은 NULL입니다.
반환¶
base_expr
의 복사본을 만들고, len
에서 시작하는 pos
문자를 삭제한 다음, insert_expr
에 pos
를 삽입하는 것과 동일한 문자열 또는 BINARY 를 반환합니다.
원래 입력 base_expr
은 변경되지 않습니다. 함수는 별도의(수정된) 복사본을 반환합니다.
예¶
이는 간단한 예입니다.
SELECT INSERT('abc', 1, 2, 'Z') as STR; +-----+ | STR | |-----| | Zc | +-----+
이 예는 대체되는 하위 문자열의 길이와 대체 문자열의 길이가 다를 수 있음을 보여줍니다.
SELECT INSERT('abcdef', 3, 2, 'zzz') as STR; +---------+ | STR | |---------| | abzzzef | +---------+
이는 대체 문자열이 비어 있을 때 어떤 일이 발생하는지 보여줍니다(함수는 시작 위치에서 시작하여, 지정된 수의 문자를 삭제하며 문자를 추가하지 않습니다).
SELECT INSERT('abc', 2, 1, '') as STR; +-----+ | STR | |-----| | ac | +-----+
이는 원래 문자열의 마지막 문자 바로 뒤에 문자를 추가하여 INSERT
를 추가 작업으로서 사용합니다.
SELECT INSERT('abc', 4, 0, 'Z') as STR; +------+ | STR | |------| | abcZ | +------+
인자 중 하나 이상이 NULL이므로 다음은 모두 NULL을 반환합니다.
SELECT INSERT(NULL, 1, 2, 'Z') as STR; +------+ | STR | |------| | NULL | +------+SELECT INSERT('abc', NULL, 2, 'Z') as STR; +------+ | STR | |------| | NULL | +------+SELECT INSERT('abc', 1, NULL, 'Z') as STR; +------+ | STR | |------| | NULL | +------+SELECT INSERT('abc', 1, 2, NULL) as STR; +------+ | STR | |------| | NULL | +------+