SQL(服务器)将varchar转换为float时出错。文本+;数量

SQL(服务器)将varchar转换为float时出错。文本+;数量,sql,sql-server,casting,sqldatatypes,converters,Sql,Sql Server,Casting,Sqldatatypes,Converters,这段代码工作正常,输出良好 代码: 输出: 我现在希望金额前面加上“方差”一词 所以我试着: select 'variance'+ (sum(SchemeAccount.AdoptionAmount)- convert(varchar,Scheme.Acquisition,103)) [£ Output] 但接下来要做的是: Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to float.

这段代码工作正常,输出良好

代码:

输出:

我现在希望金额前面加上“方差”一词

所以我试着:

 select 'variance'+  (sum(SchemeAccount.AdoptionAmount)- convert(varchar,Scheme.Acquisition,103)) [£ Output]
但接下来要做的是:

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to float.
我想要的是“73102500英镑的差额”或至少是“73102500英镑的差额”

我尝试了很多CAST和convert(varchar,col,103)函数,但要么没有成功,要么得到了variance73e105之类的函数

如果需要有关当前数据类型的更多信息,我可以尝试获取。

使用
concat()
。我想你打算:

select concat('variance',
              convert(decimal(20, 4), sum(SchemeAccount.AdoptionAmount)),
              '-',
              convert(varchar(255), Scheme.Acquisition, 103)
             ) as [£ Output]

标记您正在使用的数据库,它看起来肯定是SQL Server。谢谢G。但是我现在的输出是“Variance 7.31025e+007-0”,您能帮我获得一个正确的数字吗?大约7300万英镑。巨大的变化。@DasalKalubowila。(1) 您可以转换为十进制/数字。(2) 您不应将金额存储为浮点数。
select concat('variance',
              convert(decimal(20, 4), sum(SchemeAccount.AdoptionAmount)),
              '-',
              convert(varchar(255), Scheme.Acquisition, 103)
             ) as [£ Output]