我有一个名为讲师的表。
UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)
答案 0 :(得分:2)
可能是你无法根据子选择更新表格以避免这种情况你应该根据subselect创建一个临时表来参考这个
UPDATE instructor
SET salary=salary*1.05
where salary< (
select t.my_avg
from (
select avg(salary) my_avg from instructor
) t
)
答案 1 :(得分:1)
您无法更新表并将其用作同一查询中的子选择。这样做甚至没有意义。
要实现目标,您需要运行两个不同的查询。第一个是您的子选择。然后,第二个查询使用第一个查询的结果作为参数更新表。
查询1:
select avg(salary) from instructor
查询2:
UPDATE instructor
SET salary=salary*1.05
where salary < @avg_salary