SQL SERVER 游标与字符串分割

Create Proc usp_splitStringaaaa (@tablename varchar(100)  )
----@tablename  源表名  现在定义为只有两列,aa,bb,如果要改,需要修改游标
--40	0:100.00;1:300.00
--41	33:20.0
--42	0:100.00;1:200.00;4:500.00
as
begin
	declare @zdxh varchar(50)  ,@sql varchar(1000), @source varchar(100) ;
	 create Table #tempa(cs varchar(50));
	 create Table #splitTemp( zdxh varchar(50),mxxh  varchar(50), je  varchar(50));
	set @sql = 'DECLARE MyCursor CURSOR dynamic FOR select * from  '+@tablename ;
	exec (@sql);
	--DECLARE MyCursor CURSOR dynamic FOR select * from  @tableanem;--T_AAAA;
	OPEN MyCursor
	FETCH NEXT FROM  MyCursor INTO @zdxh,@source
	WHILE @@FETCH_STATUS =0
		BEGIN
		   set @sql='insert into #tempa select col='''+ replace(@source,';',''' union all select ''')+'''';
		   exec (@sql);
		   set @sql='insert into #splitTemp select '+@zdxh+',SUBSTRING(cs,1,CHARINDEX('':'',cs)-1) as mxxh,SUBSTRING(cs,CHARINDEX('':'',cs)+1,len(cs)- CHARINDEX('':'',cs) ) from #tempa';
		  exec(@sql)
		 FETCH NEXT FROM  MyCursor INTO @zdxh,@source
		END    
	CLOSE MyCursor
	DEALLOCATE MyCursor
	 select * from #splitTemp;
	 drop table #tempa;
	 drop table #splitTemp;	 
end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值