WorkaHolic/MSSQL

MSSQL 문자열 중에서 숫자만 골라 내는 함수

2010. 4. 8. 22:20
반응형

전화번호 011-9874-1111 에서 01198741111 만 얻어 낼때 사용 하시면 유용할 듯 합니다. ====================================================
create function make_num( @cur_num varchar(50) )
returns varchar(50)
as

begin

declare @i as int
declare @temp_num as varchar(50)

set @cur_num = replace(@cur_num,'.','')
set @cur_num = replace(@cur_num,',','')
set @cur_num = replace(@cur_num,'+','')
set @cur_num = replace(@cur_num,'-','')
set @cur_num = replace(@cur_num,'\','')
set @cur_num = replace(@cur_num,'$','')
set @temp_num=''
set @i = 1
while @i <= len(@cur_num)
begin
if isnumeric( substring(@cur_num,@i,1) ) = 1
begin
set @temp_num= @temp_num + substring(@cur_num, @i ,1)
end
set @i = @i + 1
end
return @temp_num
end
============================================================
사용 예제 입니다. 'a1a2/3*&^4fd5\6de7+-$8가가' 에서 함수를 사용하면
리턴 되는 숫자는 '12345678' 이 됩니다.
select dbo.make_num('a1a2/3*&^4fd5\6de7+-$8가가') 


반응형