SQL server实现split功能的函数

http://www.cnblogs.com/liqiang665/archive/2007/06/06/773622.aspx

 

if object_id(’f_split’) is not null
drop function f_split
go
create function f_split(@aString varchar(8000),@pattern varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :
as 
begin
    declare @i int
    set @aString=rtrim(ltrim(@aString))
    set @i=charindex(@pattern,@aString)
    while @i>=1
    begin
        insert @temp values(left(@aString,@i-1))
        set @aString=substring(@aString,@i+1,len(@aString)-@i)
        set @i=charindex(@pattern,@aString)
    end
    if @aString<>’’ 
       insert @temp values(@aString)
    return 
end
 
--运行下上述代码,然后就可以用了,例子:
select * from dbo.f_split(’0:418001:418002:418002’,':')


 

 Create FUNCTION [dbo].[Fun_Split]
(
 @str varchar(500),  --要分割的字符串
 @split varchar(100),  --分隔符
 @n int    --要返回第几个子字符串
)
RETURNS varchar(500)
AS
BEGIN
 DECLARE @i int    --循环因子
 declare @k int  --计数因子
 set @k=1
 set @str=ltrim(rtrim(@str))
 set @i=charindex(@split,@str)
 while @i>1
 begin
  if @k=@n
  begin
   return(rtrim(ltrim(left(@str,@i-1))))
  end
  set @str=substring(@str,@i+1,len(@str)-@i)
  set @i=charindex(@split,@str)
  set @k=@k+1
 end
 return rtrim(ltrim(@str))
END
 
 
--运行下上述代码,然后就可以用了,例子:
select * from dbo.Fun_Split(’0:418001:418002:418002’,':','2')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值