gpt4 book ai didi

sql-server - 想要将负数转换为正数

转载 作者:行者123 更新时间:2023-12-03 02:40:36 25 4
gpt4 key购买 nike

我有一个下面的查询,我在一个过程中使用了它,并且想要将一个数字转换为正数,因为现在它是负数。

 UPDATE SHIPMENT
SET TOTAL_SHIP_UNIT_COUNT = (
CASE
WHEN V_SHIP_UNIT_COUNT > v_diff_cost
THEN V_SHIP_UNIT_COUNT - v_diff_cost
ELSE v_diff_cost - V_SHIP_UNIT_COUNT
END)
WHERE SHIPMENT_GID = v_shipment_id;
COMMIT;

在此查询中,v_diff_cost 值为负数,因此在执行 (V_SHIP_UNIT_COUNT - v_diff_cost) 操作时,它会将这两个值相加,因此如果我将 v_diff_cost 值转换为正数,则同时减去它就会得到正确的结果。

假设 V_SHIP_UNIT_COUNT 值为 33,v_diff_cost value 为 -10,那么在这种情况下,它应该执行 33-10 = 23 操作但它的行为是 33-(-10)= 43 并且这种情况不应该发生。

请帮帮我。谢谢

最佳答案

使用 ABS() 函数,

MSDN : A mathematical function that returns the absolute (positive) value of the specified numeric expression.

UPDATE SHIPMENT
SET TOTAL_SHIP_UNIT_COUNT = (
CASE
WHEN V_SHIP_UNIT_COUNT > v_diff_cost
THEN V_SHIP_UNIT_COUNT - ABS(v_diff_cost)
ELSE ABS(v_diff_cost) - V_SHIP_UNIT_COUNT
END)
WHERE SHIPMENT_GID = v_shipment_id;
COMMIT;

关于sql-server - 想要将负数转换为正数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38201473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com