Another variant
create FUNCTION [dbo].[ft_ConvertStrToTable](
@STR varchar(8000), -- ?????? ? ?????????????
@sDiv char(1) -- ?????? ???????????
)
RETURNS
@ConvertStrToTable TABLE
(
sValue varchar(255)
)
AS
BEGIN
Declare @Pos int, @PosPrev int;
set @Pos = 1;
set @PosPrev = @Pos;
while 1=1
begin
set @Pos = CHARINDEX(@sDiv, @STR, @PosPrev);
if @Pos = 0
break;
insert into @ConvertStrToTable (sValue)
values(substring(@Str, @PosPrev, @Pos-@PosPrev));
set @PosPrev = @Pos+1;
end;
RETURN
END