将int列复制到具有正值的另一列

时间:2018-11-28 14:10:31

标签: sql sql-server

我的a列具有不同的int值(正值和负值),我想将值从A列复制到B列,如果值是负数,则转换为正数 以下内容无效

UPDATE myTable SET B = ABS(A);

谢谢

2 个答案:

答案 0 :(得分:2)

尝试

 UPDATE myTable SET B = case when A < 0 then -A else A end

答案 1 :(得分:1)

只需添加一个计算列:

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23
0,0,0,2,3,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,2,0,0,0

这样,alter table t add b as (abs(a)); 的值将在访问时进行计算,因此您不必担心它与b不同步。

假设a是数字类型并且表中定义了a,您的代码应该可以工作。