Sql 字符串分析器函数
-- =============================================
-- Create function Fun_SplitStr, 该函数功能为将以某个分割符分割的字符串转换为表的形式
-- @StrSource 用于存储要分析的字符串
-- @StrSeprate 用于存储分割符
-- @temp 用于返回分析的结果(table)
-- 如 @StrSource =‘123,456’ ; @StrSeprate =‘,’ ,则返回为 一个表:第一行为123、第二行456
-- =============================================
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = N'Fun_SplitStr')
DROP FUNCTION Fun_SplitStr
GO
CREATE FUNCTION Fun_SplitStr
(@StrSource varchar(8000),@StrSeprate varchar(10))
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @StrSource=rtrim(ltrim(@StrSource))
set @i=charindex(@StrSeprate,@StrSource)
while @i>=1
begin
insert @temp values(left(@StrSource,@i-1))
set @StrSource=substring(@StrSource,@i+1,len(@StrSource)-@i)
set @i=charindex(@StrSeprate,@StrSource)
end
if @StrSource<>''
begin
insert @temp values(@StrSource)
end
return
end
GO
实例代码:
-- =============================================
-- Example to execute function
-- =============================================
SELECT *
FROM dbo.Fun_SplitStr('1,2',',')
GO
结果为: