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]