存储过程拆分Patents表Inventor字段逗号分隔字符串

USE [METRIX]
GO


/****** Object:  StoredProcedure [dbo].[SplitString]    Script Date: 11/12/2013 12:07:26 ******/
SET ANSI_NULLS ON
GO


SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[SplitString]
as
declare @strSplitString nvarchar(1000)--要拆分的字符串
declare @strSplit nvarchar(10)-- 分隔符,如:逗号


set @strSplit=';'
declare @location int
declare @strat int
declare @resultString nvarchar(100) --存储拆分后的字符


declare @application_num varchar(50),@inventor nvarchar(255)
declare cs_db cursor for
select application_num,inventor from Patents_biomarker
open cs_db
fetch cs_db into @application_num,@inventor
while @@fetch_status=0
begin 
set @strSplitString = @inventor
SET @strSplitString = @strSplit + @strSplitString + @strSplit
Set @location = CHARINDEX(@strSplit,@strSplitString)
BEGIN TRAN --开始事务处理
WHILE @location <> 0
BEGIN
 SET @strat = @location
 SET @location = CHARINDEX(@strSplit,@strSplitString,@strat+1)
 IF @location > 0
 BEGIN
  SET @resultString = subString(@strSplitString,@strat+1,@location-@strat-1)--拆分后的字符
  insert into tempvalue 
  select @application_num,@resultString
 END
END
IF @@error = 0
BEGIN
 COMMIT TRAN -- 提交
END
ELSE
BEGIN
 ROLLBACK TRAN --出错则回滚
END


fetch cs_db into @application_num,@inventor
end
close cs_db
deallocate cs_db
GO



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值