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

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_split]') and xtype in (N'FN', N'IF', N'TF'))

drop function [dbo].[f_split]

GO

/*--得到字符串列表指定位置的字符

可以自定义字符串列表的分隔符

如果取数位置超出的范围,返回空字符串

--邹建 2004.07--*/

/*--调用示例

--测试数据

declare @t table(FITEM varchar(100))

insert @t select '100.120.10'

union all select '20.140.10'

union all select '150.124.150.10'

--查询

select fitem1=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

--*/

create function f_split(

@s varchar(8000), --字符串列表

@pos int, --取数位置

@splitchar varchar(10) --分隔符

)returns varchar(8000)

as

begin

declare @i int,@ilen int

select @i=charindex(@splitchar,@s),@ilen=len(@splitchar)

while @i>0 and @pos>1

select @s=substring(@s,@i+@ilen,8000)

,@i=charindex(@splitchar,@s)

,@pos=@pos-1

return(case @pos when 1

then case when @i>0 then left(@s,@i-1) else @s end

else '' end)

end

go

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航