Sql 将数据类型varchar转换为数值时出错

Sql 将数据类型varchar转换为数值时出错,sql,sql-server-2008,Sql,Sql Server 2008,我在执行此查询时遇到问题 select CASE when (c.Rate=0.00) then a.Item else cast('N/A' AS DECIMAL(5,2)) end from item a join rate_m c on a.item=c.item where a.item='0781718171' 当我执行这个查询时,我得到一个错误 Msg 8114, Level 16, State 5, Line 4 Error converting data type va

我在执行此查询时遇到问题

select 
CASE when (c.Rate=0.00) then a.Item else cast('N/A' AS DECIMAL(5,2))  end 
from item a join rate_m c on a.item=c.item where  a.item='0781718171'
当我执行这个查询时,我得到一个错误

Msg 8114, Level 16, State 5, Line 4
Error converting data type varchar to numeric.
我试着像上面那样投下他们,但没有成功。请在这方面帮助我,列c.rate被创建为小数点5,2

如果c.rate>0.00,我需要输出为N/A。您不能将VARCHAR值转换为十进制,但可以将十进制值转换为VARCHAR

试试这个:

SELECT 
CASE WHEN c.Rate>0.00 THEN 'N/A' ELSE CAST(a.Item AS VARCHAR) END 
FROM item a 
JOIN rate_m c ON a.item=c.item 
WHERE  a.item='0781718171'