이번시간은 MSSQL에서 사용빈도가 아주 높은 문자열 자르기를 알아보자
<문법>
SELECT SUBSTRING(문자열, 시작위치, 글자수)
ex) SELECT SUBSTRING('ABCDEFG', 1, 3)
SUBSTRING 함수의
1번째 인자 : 문자열
2번째 인자 : 자를 시작 위치
3번째 인자 : 자를 시작 위치로부터 문자 갯수
SELECT SUBSTRING('ABCDEFG', 1, 3) 라고 실행을 하면 1번째부터 3개의 문자까지 자른다는 뜻이다.
문자의 시작은 A가 1번이여서 만약 SELECT SUBSTRING('ABCDEFG', 0, 3) 이라고 입력하면 A보다 앞에서 시작해서 3글자 자르기여서 AB만 리턴된다.
그래서 시작위치를 잘 알아야한다.
SUBSTRING과 CHCHARINDEX, LEN을 조합하면 데이터가 들어왔을때 내가 원하는 대로 자를 수 있다.
예를들어 '-' 문자 앞의 데이터만 출력한다고 하면
SELECT SUBSTRING(@STRING, 1, CHARINDEX('-', @STRING)-1)
이런식으로 사용하면 된다.
만약 다른 문자열이라면 @STRING의 값만 바꿔주면 동일하게 적용된다.
다른 예로 '-'문자 뒤의 문자열을 사용한다고 하면
SELECT SUBSTRING(@STRING, CHARINDEX('-', @STRING)+1, LEN(@STRING))
이렇게 사용하면 된다.
이렇게 하면 @STRING의 문자열이 바뀌어서 문자길이가 달라져도 동일하게 사용 할 수 있다.
조금 헷갈릴수 있지만 MSSQL을 사용하면서 매우 많이 사용하는 함수다.
'MS-SQL SQL Server' 카테고리의 다른 글
MSSQL 문자열 자르기( LEFT, RIGHT ) (0) | 2020.03.10 |
---|---|
MSSQL 날짜 년, 월, 일 가져오기(DATEPART, DATENAME) (0) | 2020.03.10 |
MSSQL 문자열 길이( LEN() ) (0) | 2020.03.10 |
MSSQL 특정문자 위치 찾기( CHARINDEX() ) (0) | 2020.03.10 |
MSSQL 날짜 변환 함수(형태 변환) (0) | 2020.03.10 |