get real!

cooljohn.egloos.com

포토로그 마이가든



SQL split 함수 programming

thanks to; 

http://blog.naver.com/hukim79?Redirect=Log&logNo=60140217656


ALTER FUNCTION [dbo].[UF_TEXT_SPLIT_STRING]   
(   
    -- Add the parameters for the function here   
    @TEXT       VARCHAR(1000)   
    ,@DELIMITER CHAR(1)   
 ,@postion INT
) RETURNS VARCHAR(100)  
AS
BEGIN
 -- Declare the return variable here
 DECLARE @INDEX INT
 DECLARE @STRINGS VARCHAR(100)  
 DECLARE @RET_STRINGS VARCHAR(100)  
 DECLARE @cnt INT
 
 -- Add the T-SQL statements to compute the return value here
 SET @INDEX = -1

 SET @cnt = 1
 
 WHILE (LEN(@text) > 0)
 BEGIN  
  SET @INDEX = CHARINDEX(@DELIMITER , @TEXT)
  
  IF (@INDEX = 0) AND (LEN(@TEXT) > 0)
  BEGIN
   set @STRINGS = @TEXT
   IF @cnt = @postion
   BEGIN
    SET @RET_STRINGS = @STRINGS
    BREAK
   END
   BREAK
  END
  
  IF (@INDEX > 1)
  BEGIN   
   set @STRINGS = LEFT(@TEXT, @INDEX - 1)
   IF @cnt = @postion
   BEGIN
    SET @RET_STRINGS = @STRINGS
    BREAK
   END
   SET @TEXT = RIGHT(@TEXT, (LEN(@TEXT) - @INDEX))
  END
  ELSE
   SET @TEXT = RIGHT(@TEXT, (LEN(@TEXT) - @INDEX))

  SET @cnt = @cnt + 1
 END

 -- Return the result of the function
 RETURN (@RET_STRINGS)

END

 

사용법 :

 

select db명.소유자명.UF_TEXT_SPLIT_STRING('1,2,3,4', ',', 3) as tt
-변수 1 : 문자열

-변수 2 : split 문자

-변수 3 : 가져올 항목 (배열, 1부터 시작)





트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://cooljohn.egloos.com/tb/5598146 [도움말]

덧글

댓글 입력 영역