SQL如何向临时表新增列并基于已有列条件赋值?
解决方案
你的逻辑问题出在最后一步仅执行了查询计算,没有将计算结果写入临时表,因此新增列始终为空值。你可以直接使用UPDATE语句批量完成所有新增列的赋值,原有前两步创建临时表、新增列的代码无需修改,只需调整最后一步逻辑即可:
-- 批量更新三个新增列的取值 UPDATE #tempt SET -- 你已写好的IsColumn判断逻辑 IsColumn = CASE WHEN Called IN ('Missed', 'No Answer', 'Voicemail', 'Disconnected') THEN 1 ELSE 0 END, -- 按相同格式替换IsTest的判断条件即可 IsTest = CASE WHEN 【你的判断列】 IN ('值1','值2'...) THEN 1 ELSE 0 END, -- 按相同格式替换ThisColumn的判断条件即可 ThisColumn = CASE WHEN 【你的判断列】 IN ('值1','值2'...) THEN 1 ELSE 0 END
更新完成后执行以下语句即可验证结果:
SELECT * FROM #tempt
如果后续还有同规则的新增列,只需在SET后追加对应CASE WHEN逻辑即可,批量更新的执行效率远高于逐列单独更新。
内容的提问来源于stack exchange,提问作者DeAnna
相关产品推荐
相关产品推荐

