日期:2014-05-16  浏览次数:20509 次

求一条SQL语句的写法
表格T1(ID,AMOUNT),T2(ID,AMOUNT)

T2表中的ID是T1表中ID的子集,T1T2中同ID的AMOUNT值不同,现在要求将T1表中对应ID的AMOUNT值 更新为T2表格中相应ID的AMOUNT值。请教下这样的SQL语句该怎么写呢?
------解决方案--------------------
引用:
多谢楼上两位,惭愧,刚刚学SQL。
不过有个问题还请解答一下,如果T2表中的ID列是T1表中的真子集的话,现在要求在更新T1表时,如果T2表的ID列中有数据,那么更新,否则维持原数据不变,这样的情况下该怎么写呢。如果按照楼上的写法会不会把有些数据的AMOUNT更新为NULL啊?


不会更新为null的,因为是两个表关联的,如果关联不上,那么就不会更新的,所以不会更新为null
------解决方案--------------------
这样就万无一失了:

UPDATE T1 SET Amount = ISNULL(b.Amount, a.Amount) 
FROM T1 a INNER JOIN T2 b ON a.ID=b.ID