MS-SQL SQL Server

MSSQL 문자열 자르기( SUBSTRING )

깨노비 2020. 3. 10. 15:48
728x90
반응형

이번시간은 MSSQL에서 사용빈도가 아주 높은 문자열 자르기를 알아보자

 

<문법>

SELECT SUBSTRING(문자열, 시작위치, 글자수)

 

ex) SELECT SUBSTRING('ABCDEFG', 1, 3)

 

SUBSTRING 함수의

1번째 인자 : 문자열

2번째 인자 : 자를 시작 위치

3번째 인자 : 자를 시작 위치로부터 문자 갯수

 

1번째 부터 3개의 문자를 자른다.

SELECT SUBSTRING('ABCDEFG', 1, 3) 라고 실행을 하면 1번째부터 3개의 문자까지 자른다는 뜻이다.

문자의 시작은 A가 1번이여서 만약 SELECT SUBSTRING('ABCDEFG', 0, 3) 이라고 입력하면 A보다 앞에서 시작해서 3글자 자르기여서 AB만 리턴된다.

A보다 앞에서 시작

그래서 시작위치를 잘 알아야한다.

 

SUBSTRING과 CHCHARINDEX, LEN을 조합하면 데이터가 들어왔을때 내가 원하는 대로 자를 수 있다.

예를들어 '-' 문자 앞의 데이터만 출력한다고 하면

SELECT SUBSTRING(@STRING, 1, CHARINDEX('-', @STRING)-1)

이런식으로 사용하면 된다.

 

- 문자 앞 문자열만 사용

만약 다른 문자열이라면 @STRING의 값만 바꿔주면 동일하게 적용된다.

@STRING만 변경해서 똑같은 기능 사용

 

다른 예로 '-'문자 뒤의 문자열을 사용한다고 하면

SELECT SUBSTRING(@STRING, CHARINDEX('-', @STRING)+1, LEN(@STRING))

이렇게 사용하면 된다.

- 문자 위의 문자열 리턴

이렇게 하면 @STRING의 문자열이 바뀌어서 문자길이가 달라져도 동일하게 사용 할 수 있다.

문자열이 달라져도 문자의 길이와 특정문자의 위치를 찾아서 원하는 값을 리턴

 

조금 헷갈릴수 있지만 MSSQL을 사용하면서 매우 많이 사용하는 함수다.

728x90
반응형