如何使用 Case-Then 设置两列的值? 我有下一个脚本:
UPDATE [dbo].[operation_data]
SET block_status = CASE
WHEN sd.status = 'X' THEN 'F'
WHEN sd.status != 'X' and od.block_status = 'F' THEN NULL
ELSE block_status
END
FROM operation_data od
JOIN sales_data sd on sd.operation_data_id = od.operation_data_id
GO
但我想做这样的事情
WHEN sd.status = 'X' THEN 'F' AND main_comment = 'Expired'
“main_comment”是操作数据中的列。 据我所知,CASE 只能返回单列。有什么好的解决方案吗?
最佳答案
您还必须对另一列重复此操作:
UPDATE [dbo].[operation_data]
SET block_status = CASE
WHEN sd.status = 'X' THEN 'F'
WHEN sd.status != 'X' and od.block_status = 'F' THEN NULL
ELSE block_status
END
, main_comment = CASE
WHEN sd.status = 'X' THEN 'expired'
ELSE main_comment
END
FROM operation_data od
JOIN sales_data sd on sd.operation_data_id = od.operation_data_id
关于mysql - 多列 SQL 的 Case Then 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943264/