您的位置:首页 > 其它

得到指定字符串列表中,指定个数的字符串

2008-04-27 09:15 211 查看
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[f_split]')andxtypein(N'FN',N'IF',N'TF'))dropfunction[dbo].[f_split]GO

/*--得到字符串列表指定位置的字符 可以自定义字符串列表的分隔符 如果取数位置超出的范围,返回空字符串

--邹建2004.07--*/

/*--调用示例

--测试数据 declare@ttable(FITEMvarchar(100)) insert@tselect'100.120.10' unionallselect'20.140.10' unionallselect'150.124.150.10' --查询 selectfitem1=dbo.f_split(fitem,1,'.') ,fitem2=dbo.f_split(fitem,2,'.') ,fitem3=dbo.f_split(fitem,3,'.') ,fitem4=dbo.f_split(fitem,4,'.') from@t--*/createfunctionf_split(@svarchar(8000), --字符串列表@posint, --取数位置@splitcharvarchar(10) --分隔符)returnsvarchar(8000)asbegin declare@iint,@ilenint

select@i=charindex(@splitchar,@s),@ilen=len(@splitchar) while@i>0and@pos>1 select@s=substring(@s,@i+@ilen,8000) ,@i=charindex(@splitchar,@s) ,@pos=@pos-1 return(case@poswhen1 thencasewhen@i>0thenleft(@s,@i-1)else@send else''end)endgo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: