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

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

MS SQL 쿼리문에서 문자열 데이터를 원하는 값으로 자르기가 필요할 때가 있습니다. 예로 주민번호 데이터로 생년월일, 성별을 추출할 수 있겠죠. 그럼 간단한 예제를 통해서 SUBSTRING, LEFT, RIGHT 함수에 대해서 알아보죠.

포스트 기준

– Microsoft SQL Server 2019

– SSMS 18.10

구문

1. LEFT

▶ 문자열의 왼쪽부터 지정된 수만큼의 문자를 반환합니다.

구문 (syntaxsql)

LEFT ( character_expression , integer_expression )


2. RIGHT

▶ 지정된 문자 수만큼 문자열의 오른쪽 부분을 반환합니다.

구문 (syntaxsql)

RIGHT ( character_expression , integer_expression )


3. SUBSTRING

문자열의 지정한 위치에서 왼쪽부터 지정된 수만큼의 문자를 반환합니다.

구문 (syntaxsql)

SUBSTRING ( expression ,start , length )

사용 예제

1. 예제 1)

SELECT '881201-1234567' AS '주민번호'
       , LEFT('881201-1234567', 6) AS '생년월일'
       , RIGHT('881201-1234567', 7) AS '주민번호 뒷자리'
       , SUBSTRING('881201-1234567', 8, 1) AS '성별'


2. 예제 2)

-- 1) 사원정보 중에서 90년생 직원만 추출
SELECT *
  FROM 사원정보 (NOLOCK)
 WHERE LEFT(주민번호, 2) = '90'   -- 90년생 직원만 추출 
     
-- 2) 사원정보 중에서 이름만 추출
SELECT RIGHT(성명, 2)
  FROM 사원정보 (NOLOCK)
     
-- 3) 사원정보 중에서 남자 직원만 추출
SELECT *
  FROM 사원정보 (NOLOCK)
 WHERE SUBSTRING(REPLACE(주민번호, '-', ''), 7, 1) IN ('1','3')   -- 남자 직원만 추출

관련 이전 게시글


이 글이 도움이 되셨다면 공유를 부탁드립니다. 다음 글에서 뵙겠습니다!

위로 스크롤