将一列替换为SQL Server中另一个表中相同列的值

时间:2014-08-18 17:10:42

标签: sql sql-server

我有两张桌子,一张大牌,一张小牌。两者都包含列IDEffectiveDate

较大的表有更多的其他列,当然还有比较小的表更多的行。

在两个表的ID相同的情况下,EffectiveDate列在小表中比在大表中更早。我想用小表中的EffectiveDate列的值替换大表中的EffectiveDate

我该怎么办?

1 个答案:

答案 0 :(得分:2)

看起来像非常基本的 SQL查询......

UPDATE bt
SET EffectiveDate = st.EffectiveDate
FROM dbo.BiggerTable bt
INNER JOIN dbo.SmallerTable st ON bt.ID = st.ID
-- maybe you also need this condition, if not *ALL* EffectiveDate values in the 
-- smaller table are indeed before the values in the bigger table
WHERE st.EffectiveDate < bt.EffectiveDate