在数据库中新建一个表值函数f_split:
函数f_split的方法体:
/****** Object: UserDefinedFunction [dbo].[f_split] Script Date: 04/18/2019 15:05:07 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[f_split]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[f_split]
GO
/****** Object: UserDefinedFunction [dbo].[f_split] Script Date: 04/18/2019 15:05:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create function [dbo].[f_split](@SourceSql varchar(max),@StrSeprate varchar(10))
returns @temp table(a varchar(max))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end
GO
使用实例::
SELECT IDENTITY(INT,1,1) ID, a INTO #tb_Ticket FROM dbo.f_split('111,222,333',',')
select * from #tb_Ticket
执行以上语句的结果:
可以利用f_split函数把字符串拆分成表,然后进行需要的操作.