游标问题
declare@FidCHAR(50),@shuintselect@shu=1--定义游标declarefcursorSCROLLforselect名称fromgongz...
declare @Fid CHAR(50),@shu int
select @shu=1
--定义游标
declare f cursor SCROLL for select 名称 from gongzi
--打开游标
open f
--游标赋值(第一条)
fetch next from f into @Fid
print'++++++++++++++++-------------'+@fid
--如果游标状态成功,循环(操作,赋值)
while (@@fetch_status=0)
begin
--(关联操作)
select @shu=@shu+1
--update gongzi set 名称=@fid where 序号=@shu
fetch next from f into @Fid
--游标赋值
IF @FID!='abcdefg'
BEGIN
--fetch next from f into @Fid
print @shu
--select @shu=@shu+1
--CONTINUE
print'不是null行的输出'
END
else if @fid='abcdefg'
BEGIN
fetch PRIOR from f into @Fid
UPDATE GONGZI SET 名称=@fid where 序号=@shu
--select @fid as 名称 from gongzi where 序号=@shu
fetch next from f
print @shu
print 'IF::::::::::::::::::::::'+@fid
--CONTINUE
END
--
end
--关闭游标
close f
deallocate f
我想把以下
序号 名称
1 张
2 abcdefg
3 abcdefg
4 雨
5 abcdefg
6 生
7 abcdefg
8 abcdefg
9 abcdefg
以上表的“abcdefg”转换成以下这个表的样式:
序号 名称
1 张
2 张
3 张
4 雨
5 雨
6 生
7 生
8 生
9 生
但是上面的SQL代码实现不了,请各位大哥大姐帮忙完善一下 展开
select @shu=1
--定义游标
declare f cursor SCROLL for select 名称 from gongzi
--打开游标
open f
--游标赋值(第一条)
fetch next from f into @Fid
print'++++++++++++++++-------------'+@fid
--如果游标状态成功,循环(操作,赋值)
while (@@fetch_status=0)
begin
--(关联操作)
select @shu=@shu+1
--update gongzi set 名称=@fid where 序号=@shu
fetch next from f into @Fid
--游标赋值
IF @FID!='abcdefg'
BEGIN
--fetch next from f into @Fid
print @shu
--select @shu=@shu+1
--CONTINUE
print'不是null行的输出'
END
else if @fid='abcdefg'
BEGIN
fetch PRIOR from f into @Fid
UPDATE GONGZI SET 名称=@fid where 序号=@shu
--select @fid as 名称 from gongzi where 序号=@shu
fetch next from f
print @shu
print 'IF::::::::::::::::::::::'+@fid
--CONTINUE
END
--
end
--关闭游标
close f
deallocate f
我想把以下
序号 名称
1 张
2 abcdefg
3 abcdefg
4 雨
5 abcdefg
6 生
7 abcdefg
8 abcdefg
9 abcdefg
以上表的“abcdefg”转换成以下这个表的样式:
序号 名称
1 张
2 张
3 张
4 雨
5 雨
6 生
7 生
8 生
9 生
但是上面的SQL代码实现不了,请各位大哥大姐帮忙完善一下 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询