반응형
REGEXP_INSTR 정의
SQL에서 문자열에서 정규식과 일치하는 패턴의 위치를 찾는 함수입니다. 이 함수는 Oracle, MySQL, PostgreSQL 및 다른 일부 데이터베이스 시스템에서 사용할 수 있습니다.
예제를 활용해 해당 함수를 분석해 보겠습니다.
SELECT REGEXP_INSTR('CodeP
SELECT REGEXP_INSTR('CodePis a great teacher, and CodeP is also a programmer', 'CodeP', 1, 1, 'i') as position, REGEXP_INSTR('CodeP is a great teacher, and CodeP is also a programmer', 'CodeP', 1, 2, 'i') as position2, REGEXP_INSTR('CodeP is a great teacher, and CodeP is also a programmer', 'CodeP', 16, 1, 'i') as position3, REGEXP_INSTR('CodeP is a great teacher, and CodeP is also a programmer', 'codep', 1, 1, 'i') as position4; |
이 예제에서는 문자열 "CodeP is a great teacher, and CodeP is also a programmer"에서 "CodeP" 패턴을 찾아보도록 하겠습니다.
source_string / pattern
- source_string: 패턴을 찾을 대상 문자열입니다. 이 예제에서는 "CodeP is a great teacher, and CodeP is also a programmer"가 source_string이 됩니다.
- pattern: source_string에서 찾을 패턴입니다. 이 예제에서는 "CodeP"가 pattern이 됩니다.
start_position
- start_position: source_string에서 패턴 검색을 시작할 위치입니다. 이 예제에서는 첫 번째 REGEXP_INSTR 함수에서 start_position이 1로 설정되어 있으므로, 문자열의 처음부터 패턴 검색을 시작합니다. 두 번째 REGEXP_INSTR 함수에서 start_position이 1로 설정되어 있으므로, 문자열의 처음부터 다시 패턴 검색을 시작합니다. 세 번째 REGEXP_INSTR 함수에서 start_position이 16으로 설정되어 있으므로, 문자열의 16번째 위치부터 패턴 검색을 시작합니다.
occurrence
- occurrence: 반환할 패턴의 인스턴스입니다. 이 예제에서는 첫 번째 REGEXP_INSTR 함수와 두 번째 REGEXP_INSTR 함수에서 occurrence가 각각 1과 2로 설정되어 있으므로, pattern의 첫 번째 인스턴스와 두 번째 인스턴스를 각각 반환합니다. 세 번째 REGEXP_INSTR 함수에서 occurrence가 1로 설정되어 있으므로, start_position에서 시작하여 첫 번째 pattern 인스턴스를 반환합니다.
match_option
- match_option: 패턴 검색에 사용할 매칭 옵션입니다. 이 예제에서는 match_option이 'i'로 설정되어 있으므로, 대소문자를 구분하지 않고 패턴을 검색합니다. 네 번째 REGEXP_INSTR 함수에서 "codep"라는 패턴을 찾으려고 시도하지만, match_option이 'i'로 설정되어 있으므로, 대소문자를 구분하지 않고 검색하기 때문에 "CodeP" 패턴과 일치하는 첫 번째 인스턴스를 찾아서 1을 반환합니다.
정리
따라서, REGEXP_INSTR 함수는 source_string에서 pattern을 검색하여 해당 패턴의 위치를 반환하며, start_position과 occurrence 매개 변수를 사용하여 검색을 시작할 위치 및 반환할 패턴 인스턴스를 지정할 수 있습니다. 또한 match_option 매개 변수를 사용하여 대소문자를 구분하지 않고 검색할 수 있습니다.
결과
+-----------+------------+------------+-------------+
| position | position2 | position3 | position4 |
+-----------+------------+------------+-------------+
| 1 | 28 | 28 | 1 |
+-----------+------------+------------+-------------+
반응형
'데이터베이스 > 데이터베이스 함수' 카테고리의 다른 글
[SQL] LISTAGG 함수를 활용한 데이터 그룹화 (2) | 2023.11.23 |
---|---|
[SQL] DECODE와 CASE문의 활용 예시와 결과 분석 (0) | 2023.05.26 |
[SQL] NVL, || 활용 하기 (0) | 2023.05.24 |
[SQL] PL/SQL을 사용한 저장 프로시저 실행 방법 (0) | 2023.05.23 |
[SQL] CHR(13) 활용한 SELECT 절 문자열 처리 (0) | 2023.05.11 |
최근댓글