UPDATE A
SET Col2=B.Col2
FROM tb1 A
JOIN tb2 B
ON A.Col1= B.Col1 AND A.Col2<> B.Col2
更好一点,因为他是在两个表连接时做的条件判断,所以不用在连接后的结果中再用条件了,当然,如果在你的表大到可以用到虚拟内存的时候,可能就是第一个好一点了,因为
一个判断会少占用一点内存空间,这个时候可能是I/O成了系统的主要瓶颈。
SET Col2=B.Col2
FROM tb1 A
JOIN tb2 B
ON A.Col1= B.Col1 AND A.Col2<> B.Col2
更好一点,因为他是在两个表连接时做的条件判断,所以不用在连接后的结果中再用条件了,当然,如果在你的表大到可以用到虚拟内存的时候,可能就是第一个好一点了,因为
一个判断会少占用一点内存空间,这个时候可能是I/O成了系统的主要瓶颈。
第二个是连接时就已经过滤掉的不满足条件的数据的,系统开销相对较大.
其实一般写法也不会写成第一中,似乎不太符合常规思维逻辑啊,有画蛇添足的感觉.