在使用sqlserver数据库开发时遇到了这个问题,查询资料发现没有这样的方法,在一个朋友的帮忙下写的,跟大家分享下,希望大家能提宝贵意见,进行改进和优化
if object_id('f_split') is not null drop function f_split create function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10),@indexof int) returns nvarchar(50)as begin declare @i as intdeclare @temp_str as nvarchar(50)set @SourceSql=rtrim(ltrim(@SourceSql))while @indexof > 0begin set @indexof = @indexof - 1 set @i=charindex(@StrSeprate,@SourceSql) if @i <> 0 begin set @temp_str = (left(@SourceSql,@i-1)) set @SourceSql = right(@SourceSql,len(@SourceSql)-len(@temp_str)-len(@StrSeprate)) end if @i = 0 begin if @temp_str <> '' begin --取最后一个作为返回值 set @temp_str = @SourceSql break end endendreturn @temp_strendselect dbo.f_split('A:B:c',':','1');