该表的当前数据是:
a b
---------
-1 5
-11 2
-5 32
我的要求是将每个数据转换为正值。
不幸的是,我忘记了能够转换的SQL Server内置函数的名称。
答案 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