我正在做作业,但无法确切地弄清楚我需要做什么:
问题:
- 将 PART 的价格提高 5%。
- 显示当前数据加上新价格。
- 安排输出,使手头的数量下降。
我使用的 SQL:
UPDATE PART
set PRICE=PRICE*1.05
ORDER BY ON_HAND DESC;
我得到的回报:
ERROR at line 3: ORA-00933: SQL command not properly ended
UPDATE
查询不能与ORDER BY
.
UPDATE PART set PRICE=PRICE*1.05;
或者
UPDATE PART set PRICE=PRICE*1.05 WHERE some_condition;
ORDER BY
不是UPDATE
Oracle SQL 查询中的有效子句(尽管 MySQL 确实支持它)。这就是您收到错误消息的原因。只需删除该子句
无论如何,执行 UPDATE 的顺序很少会有所不同。
您的问题的其余部分将需要 ORDER BY 子句作为 SELECT 语句的一部分
首先获取当前值,然后计算新值:
select PRICE, ON_HAND, PRICE * 1.05 as NEW_PRICE
from PART
order by ON_HAND DESC
然后进行实际更新
update PART
set PRICE = PRICE * 1.05