Sql 在每一行中更新一列
我有一个关于ORACLE 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
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