如何根据一列的值更新不同的列

时间:2013-02-13 06:14:49

标签: sql-server-2008

我正在使用SQL Server 2008.我有2个表

指示器

Id   |   Region

Indicator12

Id   |   Name  | South America |North America

现在我需要更新南美(SA),北美(NA)列,如果Indicator表中的特定ID映射到两个区域,则SA和NA列都应标记为{{1} }如果它只映射到一个区域,则YES中的相应列应标记为Indicator12

1 个答案:

答案 0 :(得分:1)

我认为这就是你所追求的 -

update Indicator12
set [South America] = case when Indicator.Region = 'SA'
                           then 'YES'
                           else Indicator12.[South America]
                      end,
    [North America] = case when Indicator.Region = 'NA'
                           then 'YES'
                           else Indicator12.[North America]
                      end           
from Indicator12
join Indicator
    on (Indicator12.Id = Indicator.Id)