SQL Server:将数字转换为varchar大小写时出错

SQL Server:将数字转换为varchar大小写时出错,sql,sql-server,casting,case,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变成132.527,00,格式为#####0

我有一个疑问:

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变成132.527,00,格式为#####0.00


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

列只能有一种类型,并且由于“TBA”只能是字符串,因此您需要将数字也设置为字符串

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

您当然不能在
CASE
语句中混合数据类型。你能用
NULL
代替“TBA”吗?你的excel附带问题只是excel格式。如何将这些数据导入Excel?单引号表示SQL中的字符串。在变量名周围使用双引号。是的,添加null可以工作,但我需要TBA作为结果,我可以使用Replace将null更改为TBA吗?我使用spire.xls和方法。NumberFormat=“###,##0.00”是的,这在sql中非常有效,我得到正确的值,但当我将它们传递到带spire.xls的excel上时,我需要格式化单元格,如.NumberFormat="##,##0.00“和1325,27变成132.527,00,但我需要1.325,27,我认为现在只是一个格式问题,但我可以怎么解决?@Andrea这是一个关于如何在Excel中格式化数字的不同问题-我建议你问一个新问题。对,对不起,我是StackOverflow的新成员公平地说,Excel格式是原始问题的一部分,事实上,这是整个问题的一部分,即使SQL中没有解决方案,所以我并不认为有必要开始一个新问题。