카테고리 없음

[DB] MSSQL 문자함수 문자열자르기(LEFT,RIGHT,SUBSTRING)

ss-pro 2021. 6. 19. 21:29
반응형

문자열의 특정부분을 자르기 위해서는 아래 함수를 사용하면됩니다.

함수명 구문 설명
LEFT character_expression , integer_expression  왼쪽에서 주어진 숫자만큼의 자리를 가져옵니다.
RIGHT character_expression , integer_expression 오른쪽에서 주어진 숫자만큼의 자리를 가져옵니다.
SUBSTRING expression ,start , length 특정위치에 지정한 크기만큼의 데이터를 가져옵니다.

1. 테스트데이터 생성 
먼저 #MyTemp라는 임시테이블에 테스트데이터를 저장해보겠습니다. name컬럼에 nvarchar형과 varchar형의 동일한값을 넣어보도록 하겠습니다. 

1
2
3
4
5
6
7
8
9
CREATE TABLE #MyTemp
(
    name1 nvarchar(50),
    name2 varchar(50)    
 
insert into #MyTemp (name1,name2) values ('1234567890''1234567890')
insert into #MyTemp (name1,name2) values ( N'ABCDEF123456', N'ABCDEF123456')
insert into #MyTemp (name1,name2) values 
( N'안녕하세요1234테스트입니다', N'안녕하세요1234테스트입니다')

2. LEFT함수 예제
LEFT 함수를 사용하여 왼쪽부터 3번째자리값에 대하여 가져와 보겠습니다.  숫자,문자,한글모두 동일하게 3자리길이에 대한 값을 가져옵니다. 한글의 경우 2byte이나 바이트에 상관없이 지정한 자리수만큼 가져오는 부분을 확인 할수 있ㅅ브니다. RIGHT, SUBSTRING함수도 동일합니다. 

1
SELECT name1,LEFT(name1,3) name1_left ,LEFT(name2,3) name2_left  
FROM #MyTemp

처리결과

3. RIGHT함수 예제
RIGTH함수를 사용해서 오른쪽 3자리문자열 값을 가져와보겠습니다. 

1
SELECT name1,RIGHT(name1,3) name1_left ,RIGHT(name2,3) name2_left  
FROM #MyTemp

처리결과

3. SUBSTRING함수 예제
2번째 문자열부터 시작하여 3자리값에 대해여 데이터를 가져와 보겠습니다.

1
SELECT name1,SUBSTRING(name1,2,3) name1_left ,
SUBSTRING(name2,2,3) name2_left FROM #MyTemp