我有一个包含表RACE,ETHNICITY和ETH的数据库表。我需要评估RACE和ETHNICITY字段,并使用一系列情况填充ETH:
如果Race = W并且Ethncity = 1,则ETH =白种人,依此类推。

有人可以建议我构造存储过程的最佳方法吗?

最佳答案

我会在您的更新中做一个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

在这种情况下,您可以在case语句的每一行上具有任意条件。在某些行中,您可以执行两个条件(如前两行),而在其他行中,您可以执行一个条件(如第三行)。

关于sql - 根据其他两个字段中的值更新字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1568073/

10-13 07:58