본문 바로가기
Dev Log/MS-SQL

[MS-SQL] Split 함수 만들기!!

by 투윤 (TwoYoon) 2019. 6. 12.
반응형

안녕하세요

 

코딩하는 남자의 코딩연습생입니다

 

MSSQL에서 Split 제공 함수가 없습니다

 

그래서 사용자 Function으로 만들어 두시면 프로시져 내부에서 사용하시가 편합니다

 

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
반응형