declare @i smallint ,@new_name varchar(10),@name varchar(10),@numdeclare test_cur cursor for
select 姓名,学号 from xsopen test_cur
fetch next from test_cur into @name,@numwhile @@fetch_status=0
beginset @new_name=' '
set @i=1
--set @name=(select 姓名 from xs where 学号='001101')
while(@i<=len(@name))
begin
if(substring(@name,@i,1)<>' ')
begin
set @new_name=@new_name+substring(@name,@i,1)
set @i=@i+1
end
else set @i=@i+1
end
update xs
set 姓名=ltrim(@new_name)
where 学号=@num fetch next from test_cur into @name,@num
end
--select 姓名 from xs where 学号='001101'
select 姓名,学号 from xsopen test_cur
fetch next from test_cur into @name,@numwhile @@fetch_status=0
beginset @new_name=' '
set @i=1
--set @name=(select 姓名 from xs where 学号='001101')
while(@i<=len(@name))
begin
if(substring(@name,@i,1)<>' ')
begin
set @new_name=@new_name+substring(@name,@i,1)
set @i=@i+1
end
else set @i=@i+1
end
update xs
set 姓名=ltrim(@new_name)
where 学号=@num fetch next from test_cur into @name,@num
end
--select 姓名 from xs where 学号='001101'
在我的数据表中,是学号在前,姓名在后,可是游标提取时是先放名字在@name,
再放学号在@num,游标怎么会辨认出来名字与学号,而不把两者放错?
可以用批处理的方法,不用游标实现吗?
set 姓名=replace(姓名,' ','')
set 姓名=replace(姓名,' ','')
where 姓名 like '% %'
在创建游标时就有一个Select 语句它已经决定了查询结果的顺序 (姓名,学号)