sql - 根据同一列的值更新列中的值
问题描述
我需要为以下内容编写一个 UPDATE 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';
推荐阅读
- python - 按日期排序熊猫,自定义聚合器:组合每个日期的所有数据
- wordpress - 如何在 Wordpress 中使用 Stripe 和 ARMember 使用网络挂钩
- python - Discord.py ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
- python - Python:如何找到内部带有数字的符号的坐标(技术绘图)
- r - 如何在 R 中跨两个数据帧编程条件值?
- ios - 根据条件为特定的 dae 对象设置动画
- excel - 在字符串变量的第二个实例之后捕获子匹配
- google-sheets - 谷歌电子表格使用日期列获取汇率
- php - 图标在交互时消失 - PHP
- arduino - 制作 10 个 LED 块