永发信息网

SQL两表关联批量更新一列数据下面有数据参考

答案:2  悬赏:60  手机版
解决时间 2021-01-25 16:21
  • 提问者网友:孤山下
  • 2021-01-24 16:38
RLB_DTL表 rlb_num,prod_id,line_num RLB表 rlb_num
A0001 C 01 1 A0001
A0001 C02 2 A0002
A0002 C01 3 A0003
A0002 C02 4
A0002 C03 5
我想要的结果是把 A表里面的line_num批量更新为下面这种状态
A0001 C 01 1
A0001 C02 2
A0002 C01 1
A0002 C02 2
A0002 C03 3
我写了语句 大家帮我修改下 谢谢
DECLARE
@num int,
@num1 int,
@rlb_num varchar(20),
@prod_id varchar(20),
@i int
set @i='1'
set @rlb_num ='120102163'
select @num1=count(*) from rlb_dtl where rlb_num=@rlb_num
WHILE @i<=@num1
begin
select @rlb_num=rlb_num,@prod_id=prod_id from rlb_dtl where rlb_num+prod_id not in(select rlb_num+prod_id from rlb_temp)
and rlb_num=@rlb_num
update rlb_dtl set line_num=@i where rlb_num =@rlb_num and prod_id=@prod_id
insert into rlb_temp(rlb_num,prod_id)values(@rlb_num,@prod_id)
set @i=@i+1
end
这里 的 @rlb_num 需要我手工定义 由于单号比较多,我就想取RLB 表里的 rlb_num 有多少 取多少次 循环判断执行
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-01-24 18:08
首先确定一下你是sqlserver几的版本
然后prod_id这个字段C01中01难道不可以当作你需要的序号吗
全部回答
  • 1楼网友:想偏头吻你
  • 2021-01-24 18:36
update tb set line_num=case prod_id when 'c01' then 1 else 2 end 操作前先select查询确保达到要求再执行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯