我想从另一个表中的varchar更新一个表中的float列,但是当我更新时,该值略有不同。
例如,数字为: 1284773 为varchar,但变为 1284770 为float。最后一位数字总是为0。
我的查询是:
UPDATE sales s
SET
S.item_comission =
(
SELECT REF.comission
FROM ref_comission REF
WHERE REF.rv_id = S.item_id
AND REF.parent_id = S.item_sub_id
)
WHERE S.item_type = 'P';
表销售中的item_comission 是S是浮点数
表 ref_comission 中的 comission 是varchar(20)
这是实际值:1284773<<<奇怪,即使我直接改变,价值仍然回到1284770
答案 0 :(得分:0)
你有没有尝过这种方式
UPDATE S
SET
item_comission = CAST(REF.comission AS FLOAT)
FROM Sales S
INNER JOIN ref_comission REF
ON REF.rv_id = S.item_id
AND REF.parent_id = S.item_sub_id
WHERE S.item_type = 'P'
答案 1 :(得分:0)
试试这个:
UPDATE Sales
SET
item_comission = CAST(round(REF.comission,-1) AS FLOAT)
FROM Sales S
INNER JOIN ref_comission REF
ON REF.rv_id = S.item_id
AND REF.parent_id = S.item_sub_id
WHERE S.item_type = 'P'