MSSQL 문자열 자르기 SUBSTRING, LEFT, RIGHT

문자열 자르기

MSSQL에서 문자열 자르는 방법에 대해 소개합니다.
MSSQL 문자열 자르는 내장 함수인 SUBSTRING, LEFT, RIGHT 함수들을 통해 손쉽게 문자열을 자를 수 있습니다.

 

SUBSTRING

가장 대표적인 문자열 자르는 내장 함수입니다.
사실 이 함수만 사용할 줄 안다면 LEFT와 RIGHT함수는 모르셔도 괜찮습니다.

문법

--// 문법
SUBSTRING(대상문자열, 시작문자인덱스, 자를문자수)
 --> 대상문자열에서 시작문자인덱스부터 자를문자수 만큼 문자를 잘라 출력합니다.

예시

--// 예제
SELECT SUBSTRING('TARGET_STRING', 3, 3)
 --> 결과: RGE
💡시작 문자 인덱스는 1부터 시작합니다. 즉 첫 글자가 1, 두 번째 글자가 2입니다.

 

LEFT

문자열의 왼쪽부터 ~번째 글자까지 잘라주는 내장 함수입니다.
첫 글자부터 잘라야 하는 경우 사용하면 되겠습니다.

문법

--// 문법
LEFT(대상문자열, 자를문자수)
 --> 대상문자열에서 첫글자부터 자를문자수만큼 잘라 출력합니다.

예시

--// 예제
SELECT LEFT('TARGET_STRING', 5)
 --> 결과: TARGE

 

RIGHT

문자열의 오른쪽부터 ~번째 글자까지 잘라주는 내장 함수입니다.

마지막 글자부터 잘라야 하는 경우 사용하면 되겠습니다.

문법

--// 문법
RIGHT(대상문자열, 자를문자수)
 --> 대상문자열에서 제일마지막글자부터 자를문자수 만큼 잘라 출력합니다.

예시

--// 예제
SELECT RIGHT('TARGET_STRING', 4)
 --> 결과: RING

 

특정 구분자 기준 문자열 자르기

상당히 많이 쓰이는 내용인 특정구분자 기분 문자열 자르는 방법을 안내해 드리겠습니다. 

문자열 내 특정 문자를 기준으로 앞, 뒤 잘라 출력하는 방법입니다.
Email주소에 들어가는 '@' 문자를 기준으로 Email 주소, Domain으로 나눌 수 있습니다.

SELECT SUBSTRING(E_MAIL, 1, CHARINDEX('@', E_MAIL) - 1) AS EMAIL_ADDRESS
     , SUBSTRING(E_MAIL, CHARINDEX('@', E_MAIL) + 1, LEN(E_MAIL)) AS EMAIL_DOMAIN
  FROM T_EMAIL
  
SELECT LEFT(E_MAIL, CHARINDEX('@', E_MAIL) - 1) AS EMAIL_ADDRESS
     , RIGHT(E_MAIL, CHARINDEX('@', E_MAIL) + 1) AS EMAIL_DOMAIN
  FROM T_EMAIL
💡CHARINDEX(찾을 문자, 문자열) --// 문자열에서 찾을 문자의 위치를 리턴합니다.