首页 > 解决方案 > 根据同一列的值更新列中的值

问题描述

在此处输入图像描述

我需要为以下内容编写一个 UPDATE SQL 查询(使用 SQL Server 2012):

预期输出:

在此处输入图像描述

标签: sqlsql-serversql-server-2012

解决方案


您可以尝试使用CASE表达式和现有逻辑进行更新以定位正确的记录组:

UPDATE t1
SET
    t1.Value = CASE t2.Value WHEN 'AC5' THEN 'R1_123'
                             WHEN 'AC6' THEN 'R1_546' END
FROM yourTable t1
INNER JOIN yourTable t2
    ON t2.BondCureScheduleId = t1.BondCureScheduleId
WHERE
    t2.Value IN ('AC5', 'AC6') AND
    t1.InputParameterName = 'R' AND
    t2.InputParameterName = 'CD';

推荐阅读