Sql 在每一行中更新一列

Sql 在每一行中更新一列,sql,oracle,Sql,Oracle,我有一个关于ORACLE SQL的问题。 我试图做的是根据列的行值更新列中的值 我的桌子是这样的 NAME VALUE1 VALUE2 VALUE3 SOURCEVAL RESULT HEAD2 0 1 0 30 0 HEAD2 1 0 1 30 0 HEAD2 1 1 1 30 0 这是我的SQL update test

我有一个关于ORACLE SQL的问题。 我试图做的是根据列的行值更新列中的值

我的桌子是这样的

NAME   VALUE1 VALUE2 VALUE3 SOURCEVAL RESULT
HEAD2       0      1      0       30       0
HEAD2       1      0      1       30       0
HEAD2       1      1      1       30       0
这是我的SQL

 update testa set result = (select (testa.value1*testa.sourceval)+(testa.value2*testa.sourceval)+(testa.value3*testa.sourceval) from testa)
基本上,我想根据每行中的数据更新列结果。 我期望的结果是

First HEAD2 Result = 30,
Second HEAD2 Result = 60,
Third HEAD2 Result = 90
请帮助我,我一直收到“ORA-01427:单行子查询返回多行”错误

请尝试以下操作:

update testa
set result = (value1*sourceval) + (value2*sourceval) + (value3*sourceval)
在这种情况下不需要子查询。您得到的错误是因为您的子查询返回的不止一行

或者,这也会起作用:

update testa
set result = (value1+value2+value3)*sourceval
试试这个:

update testa
set result = (value1*sourceval) + (value2*sourceval) + (value3*sourceval)
在这种情况下不需要子查询。您得到的错误是因为您的子查询返回的不止一行

或者,这也会起作用:

update testa
set result = (value1+value2+value3)*sourceval