在SQL Server中将负数据转换为正数据

时间:2012-03-19 16:24:47

标签: sql sql-server

该表的当前数据是:

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

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

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

5 个答案:

答案 0 :(得分:86)

您正在考虑函数ABS,它为您提供数值数据的绝对值。

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

答案 1 :(得分: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

答案 2 :(得分:8)

UPDATE mytbl
SET a = ABS(a)
where a < 0

答案 3 :(得分:6)

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

ABS ( numeric_expression )

答案 4 :(得分:1)

使用 CASE 功能

的简单易用的解决方案
SELECT CASE WHEN ( a > 0 ) THEN (a*-1) ELSE (a*-1) END AS NegativeA,
       CASE WHEN ( b > 0 ) THEN (b*-1) ELSE (b*-1) END AS PositiveB
FROM YourTableName