SQL/MS-SQL & SQL Server Management Studio

MS SQL 구분자로 문자열로 자르기

삐뚤어진 개발자 2019. 10. 14.

구분자로 자르기

문자열: 'I;AM;TW'

 

-- ';' 기준으로 앞 자르기

SELECT LEFT('I;AM;TW', CHARINDEX(';', 'I;AM;TW')-1);

설명: CHARINDEX 함수로 구분자 (;) 의 위치를 알아내 LEFT함수로 잘라준다. 

 ;구분자는 왼쪽에서 2번째에 위치하므로 CHARINDEX(';','I;AM;TW') 는 2를 출력한다.

결과: I

 

 

-- ';' 기준으로 중간 자르기

SELECT SUBSTRING(
'I;AM;TW'
, CHARINDEX(';', 'I;AM;TW')+1
, LEN('I;AM;TW')
-CHARINDEX(';', ''I;AM;TW')
-CHARINDEX(';',, REVERSE('I;AM;TW')));

설명: SUBSTRING 함수를 사용, 중간 문자열의 시작점을 계산 (CHARINDEX(';','I;AM;TW')+1) 후 

결과: AM

 

 

-- ';' 기준으로 뒤 자르기

SELECT RIGHT('I;AM;TW', CHARINDEX(';', REVERSE('I;AM;TW'))-1);

설명: 앞 자르기와 비슷하다.  REVERSE 함수로 문자열을 뒤집어  구분자 ; 위치를 알아낸 후 RIGHT함수로 잘라낸다. 

결과: TW

 

 

 

REFERENCE: https://blog.edit.kr/m/1445?category=613943

'SQL > MS-SQL & SQL Server Management Studio' 카테고리의 다른 글

[MSSQL] BEGIN TRAN 사용하기  (0) 2019.11.27
[MS SQL] LOCK 사용자 조회  (0) 2019.11.19
[Ms sql] 문자열 함수  (0) 2019.10.10
[MS SQL] CURSOR 개념 / 사용법  (0) 2019.10.01
[MS-SQL] UNION / UNION ALL 차이  (0) 2019.10.01

댓글