mssql split 함수 DB/MS-SQL 2012/01/27 18:02
CREATE FUNCTION [dbo].[arr_split](
 @sText  VARCHAR(max),  -- 대상 문자열
 @str   CHAR(1) = '|',       -- 구분기호(Default '|')
 @idx  INT                       -- 배열 인덱스

)
RETURNS VARCHAR(max)
AS
BEGIN
 DECLARE @word    varchar(max),    -- 반환할 문자
      @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

위의 것을 붙여 넣기만 하시면 바로 함수로 사용 가능합니다.

그외의 팁으로 함수만들기가 귀찮으신 분들은...

substring(@File5, 0, charindex('//',@STR)) //이것은 나눈 첫번째
 
ISNULL(substring(@STR,len(@STR)-arindex('//',reverse(rtrim(@STR)))+2,len(@STR)),0) //나눈 두번째 

이런식으로 사용이 가능합니다. 






 
1 ... 3 4 5 6 7 8 9 10 11 ... 48