分解字符串-sql中执行带参数的函数

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
--
 Author:  <MIN>
--
 Create date: <2007-12-12>
--
 Description: <分解字符串>
--
 =============================================
--
-执行
--
     SELECT * from  dbo.Split_String ('a,b,c,d,we3r',',')

ALTER FUNCTION [dbo].[Split_String]
(
@split_string varchar(max), --要进行分解的字符串
@tag_string varchar(10--分解标志
)
RETURNS 
@split_table TABLE 
(
    split_value 
varchar(200)
)
AS
BEGIN
declare @temp_string varchar(max)
declare @start_index int
declare @end_index int

while 1=1
begin
  
set @start_index = 0
  
select @end_index = CharIndex(@tag_string,@split_string,@start_index)
  
if @end_index <> 0
  
begin
   
set @temp_string = Substring(@split_string,@start_index,@end_index)
   
if @temp_string is not null and @temp_string <> ''
    
insert into @split_table(split_value) values(@temp_string)
   
set @start_index = @end_index + 1
   
set @split_string = Substring(@split_string,@start_index,len(@split_string))
  
end
  
else
  
begin
    
if @split_string is not null and @split_string <> ''
       
insert into @split_table(split_value) values(@split_string)
   
break
  
end
end

RETURN 
END

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值