转载自:
http://www.cnblogs.com/dooom/archive/2010/01/04/1639152.html
- 1.Case更新
- 2.Count更新
1.Case更新
update websitequestion
set hasanswered=case
when hasanswered='n' then '0'
when hasanswered='y' then '1'
else '0' end
2.Count更新
schoolbasicinfo 中存在 MENBERCOUNT 字段记录条数 vw_shcoolbasic 做Count查询
update schoolbasicinfo set MENBERCOUNT=
(select vw_shcoolbasic.countnum from vw_shcoolbasic where schoolbasicinfo.schoolinfoid=vw_shcoolbasic.schoolid)
在count更新的时候,可能schoolbasicinfo.schoolinfoid 不存在于vw_shcoolbasic ,这个时候我们更新schoolbasicinfo想得到的MENBERCOUNT为0,可实际schoolbasicinfo得到的却是 null
可以结合case
update schoolbasicinfo set MENBERCOUNT=
(
case when schoolinfoid not in
(select schoolid from vw_shcoolbasic group by schoolid)
then '0'
else
(select vw_shcoolbasic.countnum
from vw_shcoolbasic
where schoolbasicinfo.schoolinfoid=vw_shcoolbasic.schoolid)
end
)
本文介绍了两种SQL更新技巧:Case更新和Count更新。Case更新用于将特定条件下的字段转换为预设值,而Count更新则用于根据关联视图更新记录条数。在Count更新中特别讨论了如何处理不存在的情况以避免NULL值。
26万+

被折叠的 条评论
为什么被折叠?



