无法在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 %' 

任何帮助将不胜感激!

+0

您将数据格式和显示的概念与数据类型的概念混合在一起。除非最终结果是字符串/字符,否则不能将NUMERIC数据类型的STRING数据组合在一起。您必须将十进制值转换为字符串才能添加%或忽略%,因为填充率%列标题已经表明它是%。 – xQbert

要么投你的十进制为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 %' 

或任何你正在显示此有显示添加“%”来显示十进制值的字段的右侧。

+0

你是一个安全的生活!我曾尝试过varchar,但一开始没有CAST。非常感谢你,我真的很感激!我是自学成才的,我知道我有更多的学习要做! – KLR

+0

如果这是一个用户可以更新的字段,如果添加%,则必须在保存时剥离它。 – xQbert

+0

是否可以直接与您联系?如果是这样,我有另一个查询,我只是太尴尬,以帮助发布! – KLR