SQL

[SQL] INSTR()

주댕이 2024. 12. 19. 01:46

# 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