无法在sql server中添加+'%' - 获取错误消息“将数据类型varchar转换为数字时出错”
问题描述:
这是我的查询行,其中收到错误消息8114,级别16,状态5。并四舍五入正是我需要的 - 只是无法获得+“%”的一部分工作:无法在sql server中添加+'%' - 获取错误消息“将数据类型varchar转换为数字时出错”
SUM(CAST(ROUND(ENROLLMENT,1) AS DECIMAL (10,2)))/SUM(CAST(ROUND(CAPACITY,1) AS DECIMAL (10,2))) *100 + '%' AS 'fill rate %'
任何帮助将不胜感激!
答
要么投你的十进制为varchar
cast(SUM(CAST(ROUND(ENROLLMENT,1) AS DECIMAL (10,2)))/SUM(CAST(ROUND(CAPACITY,1) AS DECIMAL (10,2))) *100 as varchar(100)) + '%' AS 'fill rate %'
或者干脆不添加%。列标题已经说的这是一个%视野...
cast(SUM(CAST(ROUND(ENROLLMENT,1) AS DECIMAL (10,2)))/SUM(CAST(ROUND(CAPACITY,1) AS DECIMAL (10,2))) *100 as varchar(100)) AS 'fill rate %'
或任何你正在显示此有显示添加“%”来显示十进制值的字段的右侧。
您将数据格式和显示的概念与数据类型的概念混合在一起。除非最终结果是字符串/字符,否则不能将NUMERIC数据类型的STRING数据组合在一起。您必须将十进制值转换为字符串才能添加%或忽略%,因为填充率%列标题已经表明它是%。 – xQbert