我有一个关于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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句