SQL server拆分字符遇到的问题

create function dbo.string(@str nvarchar(500),@split nvarchar(10)) Returns @table TABLE (id int,
val nvarchar(100))
as
begin
declare @star int /分隔符之后的位置/
declare @location int /分隔符的位置/
declare @next int /下一个分隔符的位置/ declare @id int
SET @id=1;
SET @str=LTRIM(RTRIM(@str));
SET @location=CHARINDEX(@split,@str);
SET @[email protected]+LEN(@split);
SET @next=CHARINDEX(@split,@str,@star) WHILE @next>0
BEGIN
IF @next>0
BEGIN
INSERT INTO @table values(@id,SUBSTRING(@str,@location-4,@next-5)) END
ELSE
BEGIN
INSERT INTO @table values(@id,SUBSTRING(@str,@location-4,LEN(@str)[email protected]+4))
END
SET @[email protected]+1
SET @[email protected]
SET @[email protected]+LEN(@split)
SET @next=CHARINDEX(@split,@str,@star)
END
Return
END
GO
SELECT * FROM dbo.string(‘宗地东至:曹桃香 宗地南至:路 宗地西至:空地 宗地北至:路’,’:’)*

运行结果是:
SQL server拆分字符遇到的问题
SQL server拆分字符遇到的问题
我设计这个函数是想把字符串中的字符以第一条结果的样式都分割出来,请问我的代码问题出现在哪里,我琢磨了一天了,没找到,请大神们帮忙看看