日期:2014-05-17  浏览次数:20616 次

今天碰到的一个面试题,求解?
表A

表B


执行语句:update AA set name=name+(select name from BB b where AA.id=b.id)

表A结果:
id      name
1 111A222A
2 111B222B
3 NULL


这却是为何? id为3的name为何是null而不是111C? 

------解决方案--------------------
SELECT 111C+NULL = NULL
------解决方案--------------------
因为B表没有id=3列,所以(select name from BB b where AA.id=b.id)返回null
null与任何值进行计算结果还是null,所以A表的id=3列被赋值了null