create function f_str_split(@str_in AS VARCHAR(max), @split as varchar(2) =',')
RETURNS @keylst TABLE(keyval varchar (50))
BEGIN
declare @idx1 int,@idx2 int,@key varchar(50)
set @idx1 = 1
set @idx2 = 0
if isnull(@split,'') = '' set @split = '|'
if right(@str_in,1) <> @split set @str_in = @str_in + @split
while 1=1
begin
set @idx2 = CharIndex(@split,@str_in,@idx2 + 1);
if @idx2 <= 0 break
--print '@idx1 ' + cast(@idx1 as varchar) + ' @idx2 ' + cast(@idx2 as varchar)
insert into @keylst select substring(@str_in,@idx1,@idx2 - @idx1);
--print @key;
set @idx1 = @idx2 + 1;
end
return;
end
go
select * from f_str_split('1,2,3,4',',')
sqlserver分割字符串为行数据
最新推荐文章于 2023-04-23 14:22:40 发布