在case语句中使用时,我似乎遇到了使用字段的问题。例如,当我尝试:
select a.*,
case when value > 0 then non_zero
else value
from mytable a
我得到的地方:
Invalid character found in string argument of the function 'DECFLOAT'
通常我会忘记将字段转换为十进制来遇到这种类型的错误,但这没有任何区别。但是,如果我尝试:
select * from mytable where value > 0
然后运行正常。
那么为什么我的标准在案例陈述中不起作用?
答案 0 :(得分:1)
我想你忘了你的"结束案例"。试试这个:
select a.*,
case
when value > 0 then non_zero
else value
end case
from a