UPDATE...SET语句中逻辑赋值的语法错误修复请求
问题修复方案
你的错误原因是所用数据库(推测为SQL Server)不支持直接将布尔表达式(cost > 0)赋值给bit类型列。bit类型仅接受0、1或NULL作为有效值,需要显式把判断结果转为对应数值。
提供两种修复后的UPDATE语句:
方法1:使用标准SQL的CASE语句(兼容性更强)
UPDATE my_table SET cost_sign = CASE WHEN cost > 0 THEN 1 ELSE 0 END;
方法2:使用SQL Server专属的IIF函数(写法更简洁)
UPDATE my_table SET cost_sign = IIF(cost > 0, 1, 0);
这两种写法都会根据cost的值给cost_sign赋值:当cost大于0时设为1,否则设为0,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

