根据同一列的值更新列中的值
Update values in column based on value of same column
我需要为
编写更新 SQL 查询(使用 SQL Server 2012)
如果值 COLUMN = AC5 AND InputParameterName = CD
然后根据上述条件
更新值 COLUMN = R1_123 OF ROW WHERE InputParameterName = R AND 相同的“bondcurescheduleid”
如果值 COLUMN = AC6 AND InputParameterName = CD
然后根据上述条件
更新值 COLUMN = R2_546 OF ROW WHERE InputParameterName = R 对于相同的 bondcurescheduleid
预期输出:
您可以尝试使用 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';
我需要为
编写更新 SQL 查询(使用 SQL Server 2012)如果值 COLUMN = AC5 AND InputParameterName = CD
更新值 COLUMN = R1_123 OF ROW WHERE InputParameterName = R AND 相同的“bondcurescheduleid”
然后根据上述条件如果值 COLUMN = AC6 AND InputParameterName = CD
更新值 COLUMN = R2_546 OF ROW WHERE InputParameterName = R 对于相同的 bondcurescheduleid
然后根据上述条件
预期输出:
您可以尝试使用 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';