我正在做作业,但无法弄明白我需要做什么:
问题:
SQL I USED:
UPDATE PART
set PRICE=PRICE*1.05
ORDER BY ON_HAND DESC;
我得到什么回报:
ERROR at line 3: ORA-00933: SQL command not properly ended
答案 0 :(得分:3)
UPDATE
查询无法与ORDER BY
一起使用。
UPDATE PART set PRICE=PRICE*1.05;
或
UPDATE PART set PRICE=PRICE*1.05 WHERE some_condition;
答案 1 :(得分:3)
如果您只需要显示值,您可以执行以下操作:
select item,on_hand,price,(price * 1.05) as new_price
from part
order by on_hand desc;
但是如果您必须更新表中的新价格然后显示值,则必须编写两个查询,一个用于更新值,另一个用于显示值。
更新值:
UPDATE PART set PRICE=PRICE*1.05;
显示值:
select *
from part
order by on_hand desc;
答案 2 :(得分:1)
ORDER BY
不是Oracle SQL中UPDATE
查询中的有效子句(尽管MySQL确实支持它)。这就是你收到错误信息的原因。只需删除
无论如何,很少会对UPDATE的执行顺序产生影响。
您的问题的其余部分将需要ORDER BY子句作为SELECT语句的一部分
答案 3 :(得分:1)
首先获取正确的值,并计算新值:
select PRICE, ON_HAND, PRICE * 1.05 as NEW_PRICE
from PART
order by ON_HAND DESC
然后进行实际更新
update PART
set PRICE = PRICE * 1.05