[MS-SQL] 문자열 추출 함수
구분자로 여러내용을 모아 저장하는 문자열은 일반적으로 어프리케이션 단에서 처리를 하는데,
서버단에서 처리가 필요한 경우 사용 할 수 있는 함수 입니다.
Syntax : fc_split_str( [문자열], [구분자], [순서] )
사용예제
declare @c varchar(250)
select @c = '000,0005,2011,1,211,000,000'
SELECT * FROM fc_split_str(@c,',', 4)
----------------------------------------------------
/*
prog by inkyung kim
*/
create function fc_split_str
(
@cText varchar(2000), -- 문자열
@cDelimiter varchar(1), -- 구분자
@iPosString int
)
returns @split_temp table ( value varchar(2000) )
as
begin
declare @iStartPos int, @iDelimiterPos int, @iCount int
declare @tmpvar varchar(1000) -- 분리된 문자열 임시 저장변수
set @iCount = 0 -- 순서
set @iStartPos = 1 -- 구분문자 검색을 시작할 위치
set @iDelimiterPos = 1 -- 구분문자 위치
while (@iDelimiterPos > 0)
begin
set @iCount = @iCount + 1
set @iDelimiterPos = charindex( @cDelimiter, @cText, @iStartPos )
if @iDelimiterPos = 0
set @tmpvar = right( @cText, len(@cText)-@iStartPos+1 )
else
set @tmpvar = substring( @cText, @iStartPos, @iDelimiterPos-@iStartPos )
if ( (len(@tmpvar)>0) and (@iPosString=@iCount) )
insert into @split_temp values( @tmpvar )
set @iStartPos = @iDelimiterPos +1
end
return
end
----------------------------------------------
저작권자 © WDEV, 무단전재 및 재배포 금지

