SQL Split

CREATE  FUNCTION SplitStr
 (
  @SourceSql varchar(8000),
  @StrSeprate varchar(10)
 )
RETURNS @temp table(A1 int identity(1,1) not null, F1 varchar(100))
AS
 BEGIN
  declare @i int
     set @SourceSql=rtrim(ltrim(@SourceSql))
     set @i=charindex(@StrSeprate,@SourceSql COLLATE Chinese_PRC_CS_AS_WS)
     while @i>=1
     begin
       insert @temp values(left(@SourceSql,@i-1))
       set @SourceSql=subString (@SourceSql,@i+1,len(@SourceSql)-@i)
       set @i=charindex(@StrSeprate,@SourceSql COLLATE Chinese_PRC_CS_AS_WS)
     end
     if @SourceSql<>''
       insert @temp values(@SourceSql) 
 RETURN /* value */
 END
=====================================================================
*****************************************************************************
* Name: T-SQL Split算法实现(整型)
* Author: Xinsoft
* Create Date: 2004-12-01
* Version: V1.0.00
*****************************************************************************/
CREATE Function Func_SplitInt
(
     @InputStr varchar(250)
)
Returns @Func_SplitInt table
(
     val int
)

as
Begin

     Declare @str varchar(250)
     Declare @substr varchar(250)
     Declare @iLen int
     Declare @iStart int
     set @str=RTrim(Ltrim(@InputStr))

     set @iStart=CHARINDEX( ',' , @str  COLLATE Chinese_PRC_CS_AS_WS)
     set @iLen=Len( @str )
     IF @iStart>0
     Begin
           set @substr=substring( @str , 1 , @iStart-1 )
           set @str=substring( @str , @iStart+1 , @iLen-@iStart )
     End
     Else
     Begin
           set @substr=@str
           set @str=''
     End

     set @substr=RTRIM( LTRIM( @substr ) )
     insert @Func_SplitInt select id=cast( @substr as int )



     While Len( @str )>0
     Begin
     ---------------- Loop Begin ---------------

     set @iStart=CHARINDEX(  ',' , @str COLLATE Chinese_PRC_CS_AS_WS)
     set @iLen=Len( @str )
     IF @iStart>0
     Begin
           set @substr=substring( @str , 1 , @iStart-1 )
           set @str=substring( @str , @iStart+1 , @iLen-@iStart )
     End
     Else
     Begin
           set @substr=@str
           set @str=''
     End

     set @substr=RTRIM( LTRIM( @substr ) )
     insert @Func_SplitInt select id=cast( @substr as int )


     ---------------- Loop End ----------------

     End


Return
End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值