基于两个其他字段中的值更新字段

Sid*_*idC 2 sql t-sql sql-server stored-procedures sql-server-2005

我有一个包含RACE,ETHNICITY和ETH字段的数据库表.我需要评估RACE和ETHNICITY字段并使用一系列案例填充ETH:如果Race = W且Ethncity = 1则ETH =高加索人等.

有人可以告诉我构建存储过程的最佳方法来实现这一目标吗?

Sql*_*yan 9

我在你的更新中做了一个CASE语句:

UPDATE yourtable
   SET Eth = CASE
               WHEN Race = 'W' AND Ethnicity = 1 THEN 'Caucasian'
               WHEN Race = 'B' AND Ethnicity = 2 THEN 'African-American'
               WHEN Race = 'H' THEN 'Hispanic' --Ethnicity is irrelevant
               ...whatever other pairs of conditions you want...
             END
 FROM yourtable
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以在case语句的每一行中拥有所需的条件.在某些行中,您可以执行两个条件(如前两行),而在其他行中,您可以执行一个(如第三行中所示).