我在同一个表中将数据从一列插入另一列时遇到问题。我插入单个行没有问题,但这不是我想要的。我有一个名为“PercentFull”的列,我将此值乘以.01以获得十进制等值,这就是我想要插入到我称为“NewPercentFull”的列中。我尝试过以下方法:
insert into Table1 (NewPercentFull)
select PercentFull * .01
from Table 1
已经存在填充PercentFull列的数据。但是,执行此查询后,我为表中的每一列都获取NULL,包括NewPercentFull。任何人都知道如何实现这一目标?感谢
答案 0 :(得分:5)
从同一记录中将数据从一列插入另一列,将涉及使用UPDATE
语句:
UPDATE Table1
SET NewPercentFull=PercentFull * .01
使用您的查询,您应该在执行该查询后看到Table1
中的记录数量加倍。
您已经提到即使是NULL
,这些值也是NewPercentFull
。如果是这种情况,那么我认为我的查询也可能返回NULL
值。当PercentFull
也是NULL
时会发生这种情况。
为避免这种情况,只有UPDATE记录NULL
没有PercentFull
值:
UPDATE Table1
SET NewPercentFull=PercentFull * .01
WHERE PercentFull IS NOT NULL