if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[F_SplitStr]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[F_SplitStr]
GO
/*
程序名:
作者:kevin
功能:分割字符串函数
参数:@str要分割的字符串
@split 分割符 默认 ;
说明:本函数在sql 2005上执行通过
运行实例:
select * from dbo.F_SplitStr ('1;23;4;5;6;',';')
*/
CREATE FUNCTION [dbo].[F_SplitStr](
@str nvarchar(4000),
@split varchar(1)=';')
RETURNS TABLE
AS
RETURN
(select b.Col from
(select [value] = CONVERT(XML,'<v>' + REPLACE(@str,@split,'</v><v>') + '</v>')) a
OUTER APPLY
(select Col = N.v.value('.','varchar(100)') from a.[value].nodes('/v')N(v))b
)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO