我希望在我的sql语句中将值100加倍。 但是当将varchar值0.0035转换为数据类型int时,它显示像转换失败的错误。
我知道这个值是在varchar中。但我希望多次使用100
这是我原来的查询代码:
@WalCalc as VARCHAR(20) = NULL,
Set @SQLQuery = @SQLQuery + 'CAST( (ISNULL(DI.Coupon,0)) AS varchar(50)) AS ''Coupon'',
和转换后的查询
Set @SQLQuery = @SQLQuery + 'CAST( (ISNULL(DI.Coupon,0) * 100) AS Decimal(18,3)) AS ''Coupon'',
请有人帮助我
答案 0 :(得分:3)
我认为您应该将Coupon
列转换为小数第一个,然后再乘以100:
Set @SQLQuery = @SQLQuery + 'ISNULL(CAST(DI.Coupon AS Decimal(18, 3)), 0.0) * 100 AS ''Coupon'',
答案 1 :(得分:2)
试试这个,
首先CAST
您的优惠券价值为NUMERIC
并执行乘法运算:
Set @SQLQuery = @SQLQuery + 'CAST( (ISNULL(CAST(DI.Coupon AS NUMERIC(18,3)),0) * 100) AS Decimal(18,3)) AS Coupon
这就是我执行的内容:
SELECT CAST((ISNULL(CAST('0.0702' AS NUMERIC(18,5)),0) * 100) AS Decimal(18,3)) AS Coupon
<强>输出强>:
Coupon
7.020
答案 2 :(得分:2)
应该是这样的
Set @SQLQuery = @SQLQuery + 'CAST((ISNULL(DI.Coupon,0) ) AS Decimal(18,3)) * 100 AS ''Coupon'',