# INSTR()
- 특정 문자열 내에서 특정 문자가 처음으로 나타나는 위치를 찾는다.
- 찾고자 하는 문자의 위치를 반환한다.
- 문자열에서 찾은 문자의 인덱스를 기준으로 계산된다.
# 기본 구문
INSTR(string, substring, start_position, match_occurance)
- string: 검색을 수행할 원본 문자열
- substring: 찾고자 하는 부분 문자열 또는 문자
- start_position: 검색을 시작할 위치. 기본값은 1이며, 이 값을 1보다 작은 값으로 설정하면 문자열의 끝에서부터 검색한다.
- match_occurance: 찾고자 하는 부분 문자열의 몇 번째 발생 위치를 찾을 것인지 지정한다. 기본값은 1이며, 첫 번째로 나타나는 위치를 반환한다.
# 반환값
- INSTR()은 부분 문자열이 첫 번째로 나타나는 위치(1부터 시작하는 인덱스)를 반환한다.
- 만약, substring이 string에 없으면 0을 반환한다.
# 예시
## 기본 예시
SELECT INSTR('Hello World', 'o') AS result;
- 결과: 5
- 'Hello World'에서 첫 번재 'o'가 5번째 위치에 있으므로 5가 반환된다.
## start_position을 지정한 경우
SELECT INSTR('Hello World', 'o', 6) AS result;
- 결과: 8
- 문자열 'Hello World'에서 6번째 위치부터 검색을 시작하면, 6번째 위치 이후의 'o'는 8번째 위치에 있으므로 8이 반환된다.
## substring이 없는 경우
SELECT INSTR('Hello World', 'z') AS result;
- 결과: 0
- 'Hello World'에는 '2'가 없으므로 0이 반환된다.
## match_occurance를 지정한 경우
SELECT INSTR('Hello World Hello', 'o', 1, 2) AS result;
- 결과: 8
- 'Hello World Hello'에서 두 번째 'o'가 8번째 위치에 있으므로 8이 반환된다.
# 활용
- INSTR() 함수는 문자열에서 특정 문자의 위치를 찾고, 그 위치를 기준으로 다른 작업을 하거나 조건문을 사용할 때 유용하다.
## 특정 단어가 포함된 행 추출하기
SELECT *
FROM table_name
WHERE INSTR(column_name, 'search_word') > 0;
- column_name에서 'search_word'를 포함하는 모든 행을 반환한다.
728x90
'SQL' 카테고리의 다른 글
[SQL] SQL 정규 표현식 (SQL Regular Expression) (0) | 2025.01.12 |
---|---|
[SQL] 가독성 높이기 (0) | 2025.01.08 |
[SQL] SUBSTR() (0) | 2024.12.19 |
[SQL] OVER() (4) | 2024.12.14 |
[SQL] 이동 평균 구하기 (0) | 2024.12.14 |