티스토리 뷰

자료/MS-SQL

SQL Split 스칼라 함수

네오블루 2011. 7. 11. 16:26

create function dbo.fn_GetSplitValue
(
 @Param varchar(max) -- 대상 문자열­
 , @Div varchar(1) -- 구분자
 , @ArrayIndex int -- 위치 
)
returns varchar(max)
as

begin

    declare @Index int
    declare
 @Pos int
    declare 
@Order int
    declare 
@Output varchar(max)

    set @Index = 1
    set @Pos = 1
    set @Order = 1

    while @Order < @ArrayIndex+1 AND @Pos > 0
    begin
        set @Pos = charindex(@Div, @Param, @Index)

        if @Pos = 0 or @Order = @ArrayIndex+1
        begin
            set @Output = right(@Param, len(@Param) - @Index + 1)
        end
        else
        begin
            set 
@Output = substring(@Param, @Index, @Pos - @Index)
        end

       set @Index = @Pos + 1
       set @Order = @Order + 1  
    end

return @Output
end

 

 

-- 쿼리 사용하기

select fn_GetSplitValue('1/2/3/4/5', '/', 2)