update #TempColor set color_1 = dbo.Func_StrArrayStrOfIndex(color,'/',1)
ALTER function [dbo].[Func_StrArrayStrOfIndex]
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
declare @splitMaxInt int --拆分组数上线
declare @result nvarchar(max)
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
set @splitMaxInt=len(@str)-LEN(replace(@str,@split,''))+1
if @index> @splitMaxInt OR ISNULL(@str,'')=''
begin
set @result=''
end
else
begin
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:、字符串不存在分隔符号2、字符串中存在分隔符号,跳出while循环后,@location为,那默认为字符串后边有一个分隔符号。
set @result=substring(@str,@start,@location-@start)
end
return @result
end