我正在使用SQL执行基本计算,但我无法弄清楚正确的语法。我有一个表,我想添加一个新列,并使用现有值的组合填充该列的值。以下是我用这个代码解释问题的代码。
-- create a table
CREATE TABLE test (
x numeric(10,3),
y numeric(10,3)
);
-- add some sample values
INSERT INTO test (x,y) VALUES( 7,3 );
INSERT INTO test (x,y) VALUES( 8,4 );
-- add a new column
ALTER TABLE test ADD testcalc numeric(10,3);
-- values in new column (testcalc) using the sum of values from x and y
INSERT INTO
test (testcalc)
SELECT
t.x + t.y
FROM
test as t;
这会产生下表:
我知道这些值是作为新行插入的,但是如何将它们作为值添加到我的列中,以便表格的结构如下?
x | y | testcalc
7 | 3 | 10
8 | 4 | 12
答案 0 :(得分:8)
您需要在查询的最后部分以这种方式使用UPDATE
而不是INSERT
:
UPDATE test SET
testcalc = x + y
SELECT * FROM test
答案 1 :(得分:3)
如果UPDATE
INSERT
UPDATE test
SET testcalc = x + y
答案 2 :(得分:2)
sql的语法将是
Update tablename set newcolumn=old_col1+old_col2;
答案 3 :(得分:1)
使用更新命令而不是插入!