SQL update case

Midke 2013-03-23 09:22:28
Update employee set a='a' where b=1
Update employee set a='b' where b=2
……

update employee set case when b=1 then a='a' when b=2 then a='b' else a='c'
更新速度一样?
...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
szm341 2013-03-23
  • 打赏
  • 举报
回复
首先你语句写错了。。 update employee set a=case when b=1 then 'a' when b=2 then 'b' else 'c' end 你那样写就直接报错了哦 如#1所说,一般应该是分开写用where筛选较快
langxingcs 2013-03-23
  • 打赏
  • 举报
回复
更新速度不是单纯就能说的,要看执行计划。 sql一切皆有可能
KevinLiu 2013-03-23
  • 打赏
  • 举报
回复
一般是不一样的。因为前两天加了WHERE条件,b有索引的话,而且b的范围取值范围广的话(比如b有100W记录),速度回很快。 第二个语句CASE WHEN是更新了整个表的数据。自己做个测试就知道性能。
seusoftware 2013-03-23
  • 打赏
  • 举报
回复
不一样的, 上面是2条语句,至少要2次读取操作。 而CASE的update只需要一次表读取操作。
Midke 2013-03-23
  • 打赏
  • 举报
回复
是不是使用Case 要一定要全表扫描

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧