首页 > 解决方案 > 我在尝试更正 sql server 2016 中的转换问题时遇到问题

问题描述

我有一个案例语句,我试图对多个列 int 值求和,然后将求和值格式化为“00000015700+”作为示例,但在 SQL Server 2016 中出现转换错误。

这是错误:

将 varchar 值“00000015700+”转换为数据类型 int 时转换失败。

这是我的代码:

CASE
    WHEN x.Code = 'WRITPREM' AND x.[Description] = 'NEW POLICY' THEN RIGHT('00000000000' + CAST(REPLACE((sum(x.totalPolicy_BIN) + sum(x.totalPolicy_COL) + sum(x.totalPolicy_OTC) + sum(x.totalPolicy_PDM) + sum(x.totalPolicy_MED) +sum(x.totalPolicy_PIP) + sum(x.totalPolicy_REN) + sum(x.totalPolicy_TOW) + sum(x.totalPolicy_UBI) + sum(x.totalPolicy_UPD)),'.','') as varchar(12)) + '+',12)END as TEST

任何帮助/方向将不胜感激。谢谢。

标签: sql-servertsql

解决方案


您正在输入的字段之一sum()包含带有“+”号的值。因此,SQL Server 无法将该值转换为整数以便sum(). 您似乎正在将该函数应用于非数字列。因此,您至少在其中一列中有意外数据。尝试消除一些sum()列以找出哪一列包含有问题的数据。理想情况下,您应该在每一列上都有正确的数据类型,而不会遇到这个问题。


推荐阅读