MSSQL 문자열 구분자 분리 (테이블 반환 함수)

DB/MySQL 2012. 12. 11. 18:02


ALTER FUNCTION [dbo].[fn_Split]
(
    @pSource    VARCHAR(MAX),
    @pSeparator VARCHAR(1)
)
RETURNS @TAB_RETURN TABLE
(
    ItemIndex   INT,
    ItemValue   VARCHAR(1000)
)
AS
BEGIN
    DECLARE @buffer VARCHAR(MAX);
    DECLARE @item   VARCHAR(MAX);
     
    DECLARE @tmp   INT;
    DECLARE @index INT;
    SET @index = 1;
   
    WHILE LEN(@pSource) > 0
    BEGIN
        SET @tmp = CHARINDEX(@pSeparator, @pSource);
         
        IF @tmp > 0
        BEGIN
            SET @item    = SUBSTRING(@pSource, 1, @tmp - 1);
            SET @pSource = RIGHT(@pSource, LEN(@pSource) - @tmp);
            INSERT INTO @TAB_RETURN VALUES(@index, @item);
             
            SET @index = @index + 1;
        END ELSE
        BEGIN
            INSERT INTO @TAB_RETURN VALUES(@index, @pSource);
             
            BREAK;
        END;
    END;
      
    RETURN
END

출처 - http://marsland.tistory.com/236

'DB > MySQL' 카테고리의 다른 글

스케일 아웃 측면에서 살펴본 MySQL의 특성  (0) 2016.08.04
MySQL root 패스워드 분실  (0) 2015.05.21
MSSQL PROC ARRAY  (0) 2012.12.11
MySQL 프로세스 리스트 보기  (0) 2011.04.22
mysql_insert_id  (0) 2010.10.27
: