如何使用SQL的CASE WHEN语句新增列,实现cnt_dealno非1时amount置0
问题原因
你原有代码的错误出在ELSE分支的逻辑:ELSE amount = 0属于布尔判断表达式,不会返回你需要的数值0,不符合CASE表达式的语法规则——CASE结构中THEN和ELSE后都需要直接填写最终要返回的目标值。
正确SQL代码
SELECT CASE WHEN cnt_dealno = 1 THEN amount ELSE 0 END AS new_amount FROM tab
补充说明:如果你的
cnt_dealno字段是数值类型,不需要给1加单引号,可避免隐式类型转换影响执行效率;如果是字符串类型,保留'1'的写法即可。
内容的提问来源于stack exchange,提问作者Thinh Le
相关产品推荐
相关产品推荐

