SELECT CASE Price WHEN '' THEN 0.0 ELSE Price END FROM Table
如果价格为空,则返回0.0,但如果列有值,则会给出下面的错误
将varchar转换为数据类型为数字的算术溢出错误。
如何更改我的代码来处理这种情况?
答案 0 :(得分:3)
SELECT CASE Price WHEN '' THEN 0.0 ELSE CAST(Price AS DECIMAL(...)) END FROM Table
隐式转换通常会采用最小的类型,因此当您达到更大的值时,它将失败。在CASE / ELSE中将您的值显式转换/转换为正确的类型。