태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
페이지를 읽고 있습니다. ( 아쿠아바다's Blog )
분류 전체보기 (769)
쉐어포인트 (24)
Exchange (12)
SQL (121)
XML (36)
WEB (294)
O / S (97)
삶의향기 (162)
기획 (19)
RSS 피드(IE 7.0부터 기본 지원됩니다. 이전 버전 사용자는 접합한 툴을 사용하세요!!)

SQL 스크립트로 숫자만 뽑아내는 함수

SQL 2007/06/07 13:31 by 아쿠아바다

오늘은 SQL 스크립트로 숫자만 뽑아내는 함수를 만들고 실행해보자

맨 아래의 사용자정의함수를 먼저 만들고 아래의 select 구문들을 실행해보면 문자는 빠지고 숫자만 나오게 됨을 알 수 있다.

select dbo.udf_findallnumbers ('12sfg34')
--results
--1234
select dbo.udf_findallnumbers ('asas123')
--results
--123

select dbo.udf_findallnumbers ('assd123jdh556jdfd4j56j78')
--results
--12355645678

select dbo.udf_findallnumbers ('sadasd')
--results
--0

select dbo.udf_findallnumbers ('sadasds65')
--results
--65

 
create table findnumber_test (name varchar(100))
insert into findnumber_test select 'A2b4b2b5bb6bb8bb9'
insert into findnumber_test select 'MAK9974'
insert into findnumber_test select 'Eiko36DKoike'
 
select dbo.udf_findallnumbers (name) from findnumber_test
--results
--2425689
--9974
--36

사용자정의 함수 만드는 SQL 스크립트 소스는 다음과 같다.

Create function dbo.udf_findallnumbers (@inputstring varchar(100))
returns bigint
as
begin
--변수를 정의한다.
declare @count1 smallint
declare @len1 smallint
declare @word varchar(100)
declare @char1 char
--변수에 값을 할당한다.
set @word=''
set @count1=1
set @len1 = datalength(@inputstring)
 
        While @count1 <=@len1
        begin
        set @char1 =substring(@inputstring,@count1,1)
        if ascii(@char1) between 48 and 57
        begin
        set @word=@word+substring(@inputstring,@count1,1)
        end
        set @count1=@count1+1
        end
return convert(bigint,@word)
 
end


출처 : korea.internet.com

'SQL' 카테고리의 다른 글

SQL 2005 Hands-On Labs 사이트  (0) 2007/06/07
MS-SQL7.0으로 Oracle DB 사용하기  (0) 2007/06/07
SQL 스크립트로 숫자만 뽑아내는 함수  (0) 2007/06/07
콤마 3자리 표시하기  (0) 2007/06/07
MS-SQL Troubleshooting 가이드  (0) 2007/06/07
ArrayToSingle 사용자정의 함수  (0) 2007/06/07
좀더 흥미로운 내용이 많이 있습니다.. HOME > SQL를 확인하세요
TAG ,   
0 Trackback, 0 Comment, :
1  ... 508 509 510 511 512 513 514 515 516  ... 769 
Statistics Graph
Total : 557,112 Today : 2