今天碰到的一个面试题,求解?
表A
表B
执行语句:update AA set name=name+(select name from BB b where AA.id=b.id)
表A结果:
id name
1111A222A
2111B222B
3NULL
这却是为何? 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