查询:
Select
case
when itembar > 1.0
then 'yes'
else 'no'
end
from
table
错误:
Itembar:varchar错误;无法将varchar转换为数字
我尝试过投射功能,但它不起作用..请建议
答案 0 :(得分:3)
在SQL Server 2012+中,您可以使用TRY_CAST,TRY_CONVERT,TRY_PARSE来避免转换数据时出错。如果有任何错误,这些函数将返回NULL
。
例如可以做到
Select case when TRY_CAST(itembar as decimal(10,2)) > 1.0 then 'yes' else 'no' end
from table
Select case when TRY_CONVERT(decimal(10,2), itembar) > 1.0 then 'yes' else 'no' end
from table
但是正如@Gurwinder建议的那样,如果你的数据都是数字,那么将它的类型更改为任何数字类型:decimal,int,....
答案 1 :(得分:0)
尝试使用CAST执行问题陈述 的查询:强>
DECLARE @itembar varchar(100) = '2567.43'
Select
case
when cast(@itembar as decimal(18,4))>1.0
then 'yes'
else 'no'
end