CAST SQL出错

时间:2015-07-17 14:06:54

标签: sql-server-2005 casting

我正在尝试组合两个表达式并将它们显示为标题。将它们显示为标题并不是问题所在,将两条线组合在一起会阻碍我。

我正在使用表达式:

CAST(Max((@PurchaseCost + @Prod_CostLBS) * @InputWeight) AS DECIMAL (10,4)) + SPACE(10) +
   CAST(@InputWeight - SUM(Sum([IC_ProductLots].[OriginalQuantity_Stk])) OVER () AS DECIMAL (10,4))

我也尝试使用INT NUMERICFLOAT。唯一一个没有返回错误的是浮动,但这搞砸了数字。

我正在尝试获得这样的输出

Cost: $10,000                                     Shrink: 120

无论是使用还是不使用CAST,我都会收到错误:

Error converting data type varchar to numeric.

如果需要,我可以提供完整的代码。

我使用的是Microsoft SQL Server 2005。

1 个答案:

答案 0 :(得分:0)

您尝试连接数字和字符串:

这是一个数字:

CAST(Max((@PurchaseCost + @Prod_CostLBS) * @InputWeight) AS DECIMAL (10,4)) +

这是一个字符串:show official documentation of SPACE function

SPACE(10) +

这是一个数字:

CAST(@InputWeight - SUM(Sum([IC_ProductLots].[OriginalQuantity_Stk])) OVER () AS DECIMAL (10,4))

如果你只想使用字符串,请使用varchar而不是decimal(10,4)

进行转换

以这种方式:

CAST(Max((@PurchaseCost + @Prod_CostLBS) * @InputWeight) AS VARCHAR) +
SPACE(10) +
CAST(@InputWeight - SUM(Sum([IC_ProductLots].[OriginalQuantity_Stk])) OVER () AS VARCHAR (10,4))