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') -- 남자 직원만 추출함께 보면 좋은 게시글
- MSSQL 공백 제거 방법 (LTRIM, RTRIM, TRIM) – 문자열 함수 (1)
- MSSQL 문자열 치환, 대/소문자 변환 (REPLACE, UPPER, LOWER)
- MSSQL 천단위 콤마, 숫자 채우기, 통화 표시 방법 (FORMAT)
- MSSQL 문자열 길이 구하기 (LEN 함수)
- MSSQL 데이터 형식 변환하기 (CAST 및 CONVERT)
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
