如何使用一条sql更新同一字段多个值?
idvalue15263748现在我想用update语句比如:update表1setvalue=(11,12,15,17)whereid=(1,2,3,4)意思是想把va...
id value
1 5
2 6
3 7
4 8
现在我想用update语句
比如:
update 表1 set value = (11,12,15,17) where id = (1,2,3,4)
意思是想把value这个字段按照id的值更新为11,12,15,17
用一条sql完成,因为实际数据比较多,>=20条 展开
1 5
2 6
3 7
4 8
现在我想用update语句
比如:
update 表1 set value = (11,12,15,17) where id = (1,2,3,4)
意思是想把value这个字段按照id的值更新为11,12,15,17
用一条sql完成,因为实际数据比较多,>=20条 展开
3个回答
展开全部
可以先把新值和id 做成一个表2;然后用游标逐个更新
deckare @value int,@id int
declare s cursor for
select value,id from 表2
open s
fetch s into @value,@id
while @@fetch_status =0
begin
update 表1 set value =@value where id =@id
fetch s into @value,@id
end
close s
deallocate s
deckare @value int,@id int
declare s cursor for
select value,id from 表2
open s
fetch s into @value,@id
while @@fetch_status =0
begin
update 表1 set value =@value where id =@id
fetch s into @value,@id
end
close s
deallocate s
追问
你的这个方法很好,还有别的方法吗? 我这里是从另外一个数据库拿值,再到这个数据库中更新
追答
这个方法就很适合从其他数据库中拿值啊 只要在'表2'改成 '数据库..表2'就成了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-04-27
展开全部
用一条语句或以实现,就是有点长,但是执行起来应该还是可以的。
update 表名1 set value=
case
when 条件1 then 值1
......
else
......
end
这个适合比较少的更新
update 表名1 set value=
case
when 条件1 then 值1
......
else
......
end
这个适合比较少的更新
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语句: update tabA set value = tabB.value from tabB where tabA.id = tabB.id
把tabB表value 更新到tabA表的value中
把tabB表value 更新到tabA表的value中
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询