使用表中的值更新新SQL列

时间:2012-02-15 15:44:36

标签: sql insert

我正在使用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;

这会产生下表:

enter image description here

我知道这些值是作为新行插入的,但是如何将它们作为值添加到我的列中,以便表格的结构如下?

x | y | testcalc
7 | 3 | 10
8 | 4 | 12

4 个答案:

答案 0 :(得分:8)

您需要在查询的最后部分以这种方式使用UPDATE而不是INSERT

UPDATE test SET
testcalc = x + y

SELECT * FROM test

答案 1 :(得分:3)

如果UPDATE

,您应该使用INSERT
UPDATE test
SET testcalc = x + y

请参阅http://www.w3schools.com/sql/sql_update.asp

答案 2 :(得分:2)

sql的语法将是

Update tablename set newcolumn=old_col1+old_col2;

答案 3 :(得分:1)

使用更新命令而不是插入!