sql遍历查询结果

思路:
            1、在需要遍历的表中添加一个临时字段flag初始值设为0;
            2、获取总行数,作为循环上线;
            3、使用top 1 与where flag = 0来取的表中第一行数据flag等于0 的数据行;
            4、操作完成后设相应行flag = 1 ;
            5、循环操作;
            6、结束循环。

贴段代码:


            select * into Sheet20120707 from dbo.Sheet1$
drop table Sheet20120707
alter table dbo.Sheet1$
add flag int default 0 with values

--批量实现实习生转正信息更改
--定义变量
declare @i int,@count int,@sourceTable nvarchar(100),@targetTable nvarchar(100)
declare @currentValue  nvarchar(100),@zs_email nvarchar(100)
--获取需要修改的人数
select @count = COUNT(*) from Sheet1$
--遍历需要修改的实习生信息
while @count > 0 
begin
--获取正式员工编号和正式员工邮件地址
select top 1 @currentValue = 正式员工编号,@zs_email = 正式员工邮件地址
from dbo.Sheet1$ where flag = 0 --flag是用来实现遍历的关键列
if @currentValue is not null --判断是否有符合条件的信息,没有则直接执行下次循环
begin
update dbo.Sheet20120707
set 实习生编号 = @currentValue,实习生邮件地址 = @zs_email
where 正式员工编号 = @currentValue

update Sheet1$
set flag = 1
where 正式员工编号 = @currentValue
end
set @count = @count -1
end


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值