본문 바로가기
IT/MSSQL

[MSSQL] charindex 문자열 위치 반환 & 구분자 기준 자르기

by 베베야 2021. 3. 11.
728x90

charindex 함수

문자열에서 특정 문자의 위치를 숫자로 반환하는 함수입니다.
인수가 2개인 경우도 있고 3개를 사용하는 경우도 있습니다.

사용법

--인수가 2개인 경우
CHARINDEX('찾을문자열','지정문자열')

--인수가 3개인 경우
CHARINDEX('찾을문자열','지정문자열',위치값)


예제

--bebe 라는 문자열에서 e 라는 문자의 위치를 반환하시오.
--(4번째에도 e가 있지만 먼저 나온 문자를 찾아서 위치를 반환합니다.)
SELECT CHARINDEX('e','bebe') -- 2

--bebe 문자열 3번째 위체에서 b 라는 문자의 위치를 반환하시오.
SELECT CHARINDEX('b','bebe',3) -- 3

--bebe 문자열 4번째 위체에서 b 라는 문자의 위치를 반환하시오.
--(4번째 부터 찾으면 e 부터 찾음으로 b라는 문자열을 찾을 수 없기 때문에 0을 반환합니다.)
SELECT CHARINDEX('b','bebe',0) -- 0

 

 

charindex 구분자로 자르기

문자열 자르기 함수와 함께 사용되어 특정 구분자로 문자열을 자를 수 있습니다.

예제

-- 주민등록번호 앞자리만 가져오기
SELECT LEFT('901234-1234567',charindex('-','901234-1234567')-1)

-- 주민등록번호 뒷자리만 가져오기

SELECT RIGHT('901234-1234567',charindex('-','901234-1234567'))


이상으로 charindex 함수를 이용한 문자열의 위치를 숫자로 알아내는 방법과
문자열 자르기 함수와 조합하여 구분자를 이용하여 문자열 자르는 방법에 대해서 알아보았습니다.

반응형
그리드형

댓글