split 함수 "구분자로 문자열 쪼개기"

by kay posted Aug 19, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

MS-SQL 버전 : split 함수


CREATE FUNCTION arr_split(
 @sText  VARCHAR(500),  -- 대상 문자열
 @str   CHAR(1) = '|',       -- 구분기호(Default '|')
 @idx  INT                       -- 배열 인덱스

)
RETURNS VARCHAR(20)
AS
BEGIN
 DECLARE @word    CHAR(20),    -- 반환할 문자
      @sTextData  VARCHAR(600), 
      @num    SMALLINT;
     
 SET @num = 1;
 SET @str = LTRIM(RTRIM(@str));
 SET @sTextData = LTRIM(RTRIM(@sText)) + @str; 
 
 WHILE @idx >= @num
 BEGIN
  IF CHARINDEX(@str, @sTextData) > 0
  BEGIN
   -- 문자열의 인덱스 위치의 요소를 반환
   SET @word = SUBSTRING(@sTextData, 1, CHARINDEX(@str, @sTextData) - 1);
   SET @word = LTRIM(RTRIM(@word));

   -- 반환된 문자는 버린후 좌우공백 제거   
   SET @sTextData = LTRIM(RTRIM(RIGHT(@sTextData, LEN(@sTextData) - (LEN(@word) + 1))))
  END ELSE BEGIN
   SET @word = NULL;
  END
  SET @num = @num + 1
 END
 RETURN(@word);
END



원문 Url : http://huhlog.tistory.com/7


Articles

1 2 3