USE [OA]
GO
/****** Object: UserDefinedFunction [dbo].[func_splitstring] Script Date: 09/15/2011 17:26:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: QW
-- Create date: 2011-9-15
-- Description: 字符串分隔函数
-- =============================================
Create function [dbo].[func_splitstring](@str nvarchar(max),@split varchar(10))
returns @t Table (c1 varchar(100)) as
begin
declare @i int
declare @s int
set @i=1
set @s=1
while(@i>0)
begin
set @i=charindex(@split,@str,@s)
if(@i>0)
begin
insert @t(c1) values(substring(@str,@s,@i-@s))
end
else
begin
insert @t(c1) values(substring(@str,@s,len(@str)-@s+1))
end
set @s = @i + 1
end
return
end
调用实例:
select a.UserID_Xd from (
select top 1 cast(c1 as int) as UserID_Xd from func_splitstring('1,33,44,12',',')) a