原贴:http://topic.youkuaiyun.com/u/20100412/02/f0442341-1605-46ad-b325-6411c50d594f.html?27940
IF OBJECT_ID(N'[dbo].[f_GetStr]') IS NOT NULL
DROP FUNCTION [dbo].[f_GetStr]
GO
--原著:邹建
CREATE FUNCTION dbo.f_GetStr(
@s varchar(8000), --包含多个数据项的字符串
@pos int, --要获取的数据项的位置
@split varchar(10) --数据分隔符
)RETURNS varchar(100)
AS
BEGIN
DECLARE @splitlen int
SELECT @splitlen=LEN(@split+'a')-2
WHILE @pos>1 AND CHARINDEX(@split,@s+@split)>0
SELECT @pos=@pos-1,
@s=STUFF(@s,1,CHARINDEX(@split,@s+@split)+@splitlen,'')
RETURN(ISNULL(LEFT(@s,CHARINDEX(@split,@s+@split)-1),''))
END
GO
declare @s varchar(300)
set @s='这里发言,表示您接受了优快云社区的用户行为准则。
请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。
转载文章请注明出自“优快云(www.youkuaiyun.com)”。如是商业用途请联系原作者。'
SELECT dbo.f_GetStr(@s,1,CHAR(10)) --char(10) 换行符
/*
-----------------------------------------------------------------------
这里发言,表示您接受了优快云社区的用户行为准则。
(1 行受影响)
*/
SELECT dbo.f_GetStr(@s,2,CHAR(10))
/*
-----------------------------------------------------------------------
请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。
(1 行受影响)
*/
SELECT dbo.f_GetStr(@s,3,CHAR(10))
/*
-----------------------------------------------------------------------
转载文章请注明出自“优快云(www.youkuaiyun.com)”。如是商业用途请联系原作者。
(1 行受影响)
*/