SQL Split 스칼라 함수
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)