天天看点

SQL 字段取字符位置与循环修改数据

declare @ReWorkTable table(RowNumber int, TaskID int)

insert into @ReWorkTable

select row_number() over (order by gzrw_id), gzrw_id from tworktask where gzrw_tasktype = 7 and gzrw_state = 0 and gzrw_project_id = 38

declare @pos int

declare @count int

select @count = count(RowNumber) from @ReWorkTable

 --print @count

set @pos = 1

while (@pos <= @count)

begin

  declare @id int

  select @id = TaskID from @ReWorkTable where RowNumber = @pos

  --print @id

  declare @gzrw_name varchar(100)

  select @gzrw_name = gzrw_name from tworktask where gzrw_id = @id

  --print @gzrw_name

  declare @tag int

  select @tag= charindex('入',@gzrw_name)

  --print @tag

  declare @gzrw_name_temp varchar(100)

 select @gzrw_name_temp=substring(@gzrw_name,1,@tag)

  --print @gzrw_name_temp

 declare @gzrw_worker_id int

 select @gzrw_worker_id=gzrw_worker_id From tworktask where gzrw_name [email protected]_name_temp

  --print @gzrw_worker_id

 update tworktask set [email protected]_worker_id where [email protected]

 set @pos = @pos + 1

end

IF @@ERROR <> 0

print '成功修改条数:'[email protected]