首页 > 解决方案 > 将 varchar 值“%”转换为数据类型 int SQL 时转换失败

问题描述

a.taxamount介于0.0and之间20.0,我想将其显示为0.0%or120.0%但出现转换错误。

SELECT....
,(a.taxamount * 100) + '%' AS TaxAmount

标签: sqlsql-serversql-server-2008

解决方案


+运算符用于加法和连接。如果您混合使用字符串和数字,则假定添加并尝试将字符串隐式转换为数字。

正如您在 SQL Server 2008 上一样,您应该varchar在连接之前将数字转换为第一个。

CAST(a.taxamount * 100 AS VARCHAR(10)) + '%'

在更新的版本中,您可以使用CONCAT隐式执行此操作的函数或使用FORMAT(a.taxamount, 'P1')乘以 100 并附加百分比字符。


推荐阅读