[MS-SQL] 문자열 추출 함수
Wdev
2015-04-27

구분자로 여러내용을 모아 저장하는 문자열은 일반적으로 어프리케이션 단에서 처리를 하는데,
서버단에서 처리가 필요한 경우 사용 할 수 있는 함수 입니다.

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, 무단전재 및 재배포 금지
관련 기사
DBMS 분류 내의 이전기사