2012-03-19 55 views
34

表的当前数据是:转换负数据为正的数据在SQL Server

a b 
--------- 
-1 5 
-11 2 
-5 32 

我的要求是每一个数据转换为正值。

不幸的是,我忘记了可以转换的SQL Server的内置函数的名称。

+2

sql server ... abs函数 – mservidio 2012-03-19 16:26:11

+1

不要介意他们。提供好的问题和良好的答案! – 2013-02-15 11:04:33

回答

72

您在函数ABS中思考,它给出了数值数据的绝对值。

SELECT ABS(a) AS AbsoluteA, ABS(b) AS AbsoluteB 
FROM YourTable 
6

使用绝对值函数ABS。语法是

ABS (numeric_expression) 
6
UPDATE mytbl 
SET a = ABS(a) 
where a < 0 
16

最好的解决办法是:从正到负或从负到正

为负:

SELECT ABS(a) * -1 AS AbsoluteA, ABS(b) * -1 AS AbsoluteB 
FROM YourTable 

对于正:

SELECT ABS(a) AS AbsoluteA, ABS(b) AS AbsoluteB 
FROM YourTable 
+0

最好的解决方案来自仔细阅读问题。 OP希望一切都不是倒转。 – Jamiec 2013-04-18 10:50:08

+0

同意,但我来到这里找到积极的消极,这种解决方案进入我的脑海,我发布它。如果你注意到我在答案中提到积极的消极和消极的积极。可能对别人有帮助。 – 2013-04-18 13:32:29

+0

现在我认为这是有帮助的:D – 2013-04-18 13:41:34

相关问题