본문 바로가기

프로그램 경험/Database

[SqlServer] 데이터에서 숫자만 빼고 특수문자들 제거 하기

우편번호나 전화번호등의 숫자들만 필요한 데이터에서 숫자만 남겨두고 제거 하는 방법이다.

Sqler.com 을 보다가 함수로 만들어 놓은게 있어서 테스트 할겸 해서 펼쳐 봤다. 


DECLARE @InString VARCHAR(20)

DECLARE @cleanString VARCHAR(20) 


SET @InString = '151*5-5!5'


--initialize String to not null 

SET @cleanString = ''


--create a variable to use in looping thru string 

DECLARE @position INT 

SET @position = 1 



--get length of input string 

DECLARE @strLength INT 

SET @strLength = LEN(@InString) 


--start looping 

WHILE @position <= @strLength 

BEGIN 

--get ascii table number and find out if is a number 

IF ASCII(SUBSTRING(@InString, @position, 1)) BETWEEN 48 AND 57 

BEGIN 

SET @cleanString = @cleanString + SUBSTRING(@InString, @position, 1) 

END 

--increment to next character 

SET @position = @position + 1 

END 


PRINT @cleanString




*출처 : http://www.sqler.com/index.php?mid=bColumn&page=77&document_srl=104531