一张表,根据id更新value,当然有多个id对应着多个value。。每个value值都是没有规律的。
update 表å set value=case when id=1 then ä¸ä¸ªå¼
when id=2 then ä¸ä¸ªå¼
when id=3 then ä¸ä¸ªå¼ else value
end
when id=2 then ä¸ä¸ªå¼
when id=3 then ä¸ä¸ªå¼ else value end
where id in (1,2,3)
when id=2 then ä¸ä¸ªå¼
when id=3 then ä¸ä¸ªå¼ else value
end
ä¸è¾¹å°±æ¯ä¸¾ä¸ªä¾åï¼æææ¯ï¼å½id=1æ¶ï¼ævalue设å®ä¸ªå¼ï¼å½id=2æ¶ï¼value设å®å¦ä¸ä¸ªå¼ï¼ä¾æ¬¡ç±»æ¨ï¼ä¸éè¦æ´æ¹çä¿çåæ¥çvalueå¼ï¼æå以endç»å°¾
追é®æ没ææ¹æ³ç»è¿é£äºä¸éè¦ä¿®æ¹çidå¢ï¼æè§å°±æ¯æ´å¼ 表é½æ´æ°äºä¸éããæçæç¹æ ¢
追çupdate 表å set value=case when id=1 then ä¸ä¸ªå¼when id=2 then ä¸ä¸ªå¼
when id=3 then ä¸ä¸ªå¼ else value end
where id in (1,2,3)
åè¾¹å 个where æ¡ä»¶å°±ç»è¿å»äº
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-09-11
declare @cnt int
select @cnt = count(1) from A
while(@cnt > 0)
begin
--更新
set @cnt = @cnt - 1
end
做个临时表放置标识字段跟状态,对满足某个状态的批量update。
索引可以优化查询,update跟delete这种操作反而会破坏索引。
select @cnt = count(1) from A
while(@cnt > 0)
begin
--更新
set @cnt = @cnt - 1
end
做个临时表放置标识字段跟状态,对满足某个状态的批量update。
索引可以优化查询,update跟delete这种操作反而会破坏索引。
第2个回答 2013-09-09
可以根据你的需求写一个存储过程或者触发器,把你的更新内容value写在一个串或者什么里面存储,每次就改这个位置
第3个回答 2013-09-09
把这张表;也导入SQL;再用来更新
UPDATE 要根据的表 SET 更新的字段 FROM 要更新的表 A LEFT 导入SQL的表 AS B
ON A.ID =B.ID
UPDATE 要根据的表 SET 更新的字段 FROM 要更新的表 A LEFT 导入SQL的表 AS B
ON A.ID =B.ID
第4个回答 2013-09-09
用Excel辅助,请参考:
如有疑问,请追问。
如有疑问,请追问。