怎么把MedTypeName转换为varchar(50),出现错误将 varchar 值 '电子处方' 转换成数据类型 int 时失败

qq_32320747 2018-05-16 03:56:21
MedType.Name+ '-'+Charge.sDeptCode    AS  MedTypeName
...全文
281 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwfxgm 2018-05-17
  • 打赏
  • 举报
回复
sql server2017 直接使用trim(MedType.Name)+'-'+trim(Charge.sDeptCode)
shinger126 2018-05-16
  • 打赏
  • 举报
回复
在对2个不同类型的数据列进行计算时,在没有显式对数据类型进行转换的时候,MSSQL会将优先级较低的数据类型转换成优先级高的数据类型,比方说你的这2个列,MedType.Name为varchar型,Charge.sDeptCode为int型,int优先级高,你又没有做显式转换,那么数据库会尝试将varchar型的列MedType.Name转换为int型再与Charge.sDeptCode进行计算。当MedType.Name中有数据不能转换为int型数据的时候,就发生错误了。数据类型优先级参见https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms190309(v=sql.105)
二月十六 2018-05-16
  • 打赏
  • 举报
回复
MedType.Name+ '-'+RTRIM(Charge.sDeptCode)    AS  MedTypeName
卖水果的net 2018-05-16
  • 打赏
  • 举报
回复
规则: A+B , 只要 A 和 B 中,有一个数值开, 就会把另一个转换成数值型,如果转换失败,就会有你这个提示 所以,你要改成: ltrim(MedType.Name) + '-'+ ltrim(Charge.sDeptCode)    AS  MedTypeName

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧