Sql 正在尝试使用子查询的结果更新所有列
我对SQL非常陌生,我正在尝试做以下工作:Sql 正在尝试使用子查询的结果更新所有列,sql,oracle11g,sql-update,Sql,Oracle11g,Sql Update,我对SQL非常陌生,我正在尝试做以下工作: update the salary of employees with their department avg salary. 我正在尝试SQL命令 我正在尝试的命令是: update emp set sal = select avg(sal) from emp; 但我得到了这样一个错误: ORA-00936: missing expression : update emp set sal = select avg(sal) from emp
update the salary of employees with their department avg salary.
我正在尝试SQL命令
我正在尝试的命令是:
update emp set sal = select avg(sal) from emp;
但我得到了这样一个错误:
ORA-00936: missing expression : update emp set sal = select avg(sal) from emp
我在哪里犯了错误
提前感谢。您所尝试的仅是正确的…通常,子查询应保留在括号内,请尝试以下操作:更新emp set sal=从emp中选择avgsal
update emp
set sal = (SELECT av FROM (SELECT AVG(sal) av FROM emp) s)
from emp;
参考此:它有效吗?首先,如果值来自select,则不能直接更新表。其次,当语句返回值时,需要使用子查询包装语句。