DB/MSSQL

[MSSQL] 특정문자열 추출하기 (SUBSTRING/CHARINDEX)

alien22c 2024. 8. 20. 14:17
728x90
728x90

기본은 SUBSTRING 을 이용하며,
특정 문자열 전후 위치를 알수 있도록 CHARINDEX 함수를 함께 사용하여 추출할 수 있다.
 
 

 Syntax
 SUBSTRING(문자열, 시작문자열, 추출길이)
 CHARINDEX(찾을문자열, 문자열)

 
 

확인순서
1. 시작문자열 위치 찾기
2. 종료문자열 위치 찾기
3. 추출 길이 계산 (시작문자열과 종료문자열 위치를 알아야 함)
4. 문자열 추출

 
 
 

예제) 문자열 'ADMIN-DB-01-(TestDb).ppt'  에서 DB명만 추출해보기
DECLARE @string VARCHAR(50)
SET @String='ADMIN-DB-01-(TestDb).ppt'

-- 1. 시작문자열 위치 찾기
SELECT CHARINDEX('(',@String) + 1

-- 2. 종료문자열 위치 찾기
SELECT CHARINDEX(')',@String) - 1

-- 3. 추출 길이 계산
SELECT CHARINDEX(')',@String) - 1 - CHARINDEX('(',@String)

-- 4. 문자열 추출
SELECT SUBSTRING(@String, CHARINDEX('(',@String) + 1, CHARINDEX(')',@String)-CHARINDEX('(',@String) - 1) DBName

실행결과: TestDb

 

728x90
728x90