sql - 根据其他两个字段中的值更新字段

标签 sql sql-server sql-server-2005 tsql stored-procedures

我有一个包含字段 RACE、ETHNICITY 和 ETH 的数据库表。我需要评估 RACE 和 ETHNICITY 字段并使用一系列案例填充 ETH: 如果 Race = W 和 Ethncity = 1 那么 ETH = Caucasian 等等。

有人可以建议我构建存储过程以实现此目的的最佳方法吗?

最佳答案

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

相关文章:

sql - 在一组两种可能性中选择唯一行

mysql - 如何删除存储过程中的连字符

SQL查询以查找当月的最后一天?

以下模式的sql查询

sql-server - Azure 上的 Sql 数据库备份

sql-server-2005 - 如何在 SQL 中使用 CASE,显示语法错误

sql-server-2005 - 将两列合并为一列并获得唯一的

sql - 如何修复 sql server 2005 中的用户定义函数标量值性能问题?

sql - 创建一个数据库来存储模块名称及其 parent_module_id

sql-server - 违反身份列上的主键错误