SQL Server:转换错误数字到varchar情况

时间:2015-02-23 11:09:34

标签: sql sql-server casting case

我有这个问题:

CASE ClaimsFees.TBA 
   WHEN 0 THEN CAST(IndemnityReserve AS NUMERIC(9,2)) 
   ELSE 'TBA' 
END AS 'Reserve Indemnity'

但我总是得到这个错误:

  

将数据类型varchar转换为数字

时出错

我曾尝试将TBA转换为数字,但我无法执行此操作,我也无法将所有结果转换为varchar,因为当我转移到Excel文件时,数字为1.325,27使用##,## 0.00格式变为132.527,00。

SQL Server中是否有可用于解决此问题的方法?

1 个答案:

答案 0 :(得分:2)

该列只能有一种类型,而且“TBA”只能是一个字符串,您还需要将数字设为字符串。

CASE ClaimsFees.TBA WHEN 0 
then cast(cast(IndemnityReserve as NUMERIC(9,2)) as varchar(12))
else 'TBA' 
end as 'Reserve Indemnity',