如何在SQL中对表内两列求和并生成第三计算列?
实现方法
根据你的需求,有两种常见的实现方式,分别适用于不同场景:
1. 添加自动计算的列(推荐,实时同步求和结果)
如果希望第三列的值能自动随col1和col2的变化而更新,可以创建计算列:
ALTER TABLE Numbers ADD col3 AS (col1 + col2) PERSISTED; -- PERSISTED关键字会将计算结果存储在表中,提升查询性能
执行这条语句后,现有数据的col3会自动计算填充,后续插入或更新col1/col2时,col3的值会自动同步更新。
2. 添加普通列后手动更新数据
如果只需要一次性计算现有数据的求和结果,后续不需要自动更新,可以先添加普通列,再执行更新语句:
步骤1:添加新列
ALTER TABLE Numbers ADD col3 float;
步骤2:更新现有数据的求和结果
UPDATE Numbers SET col3 = col1 + col2;
这种方式下,后续如果col1或col2发生变化,col3的值不会自动更新,需要手动再次执行UPDATE语句。
内容的提问来源于stack exchange,提问作者gorpe
相关产品推荐
相关产品推荐

