MSSQL CHARINDEX 함수

728x90

※MSSQL CHARINDEX 함수 활용 방법에 대해서 알아보겠습니다.

 

MSSQL에서 CHARINDEX 함수는 문자열에 특정 문자를 찾고 위치값을 반환해 주는 함수입니다. 문자열의 앞부분이나 특정 위치부터 문자위치를 찾아주고 있습니다.

 

함수 사용법

CHARINDEX('찾고자 하는 문자','문자','시작위치');

 

CHARINDEX함수가 실행되고 나서 찾은 문자가 존재하면 위치 값을 숫자로 표현해 주고, 존재하지 않으면 '0'을 리턴하게 됩니다.

 

시작위치를 지정하여 사용하는 방법

SELECT CHARINDEX('EF', 'ABCDEFG 123456',1);

문자열의 1번 위치부터 찾아서 'EF'을 찾고 찾은 위치값 4를 리턴하여 준다.

 

대소문자를 구별하여 찾기

SELECT CHARINDEX('eF','ABCDEFG 12345 ABCeFG EF1234' COLLATE Latin1_General_CS_AS);

문자열의 첫 번째부터 찾고 'eF'을 찾아서 위치값 18을 리턴하여 준다. 다시 말해 소문자 대문자를 구분하여 위치를 찾기 때문에 대문자로만 되어 있는 부분은 찾지 못하게 된다.

 

※ 대소문자 구분: COLLATE Latin1_General_CS_AS

※ 대소문자 구분 없이: COLLATE Latin1_General_CI_AS (기본)

 

두 번째 문자열 찾기

Declare @Str Varchar(50) = 'Abcdefg 123345 AbECDEF 1234'

Select CharIndex('23', @Str, CharIndex('23', @Str) + 1 );

문자열의 첫 번째를 찾고 다음 (+1)하여 두 번째를 찾아서 리턴하여 준다. 대소문자 구분 없이 찾아서 위치 값을 리턴하게 된다.

 

다시 정리하자면 내가 찾고자 하는 문자를 문자열에서 찾아 특정위치에 문자만 찾아 다시 편집할 수 있고, 특정위치에 내용을 찾아서 지울 수도 있습니다. 그리고 특정위치를 찾아서 그 위치에 문구를 보여주어야 한다면 유용하게 사용할 수 있겠습니다.

 

반응형