2012-02-15 3 views
1

Я использую SQL для выполнения базового расчета, и я не могу понять правильный синтаксис. У меня есть таблица, где я хочу добавить новый столбец, и заполнить значения этого столбца, используя комбинацию существующих значений. Вот код, который я иллюстрирую проблему.Обновление нового столбца 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 
+0

Ах, так что мой пример включает в себя простые данные. Я выполняю более сложный запрос, но не знаю, как обновить таблицу с моими результатами! Многому научиться в мире 'SQL'! – djq

ответ

8

Вы должны использовать UPDATE вместо INSERT таким образом, в последней части запроса:

UPDATE test SET 
testcalc = x + y 

SELECT * FROM test 
+0

Хорошо, вы избили меня за 6 секунд .. –

1

Используйте команду обновления и не вставить!

2

Синтаксис SQL будет

Update tablename set newcolumn=old_col1+old_col2; 
Смежные вопросы