【发布时间】:2018-01-20 11:21:23
【问题描述】:
我遇到了一个错误
ORA-00928: 缺少 SELECT 关键字
在运行此查询时:
WITH Dups AS
(
SELECT
ID, AMOUNT, BATCH_ID, PROCESS_DATE, ITEM_NUMBER, ERROR_TYPE, INSERTED_DATE,
ROW_NUMBER() OVER(PARTITION BY ID, ERROR_TYPE ORDER BY ID) AS rn
FROM
ERROR_TABLE
WHERE
inserted_date >= TRIM(TO_DATE('01-AUG-17', 'DD-MON-YY'))
AND inserted_date <= TRIM(TO_DATE('11-AUG-17', 'DD-MON-YY'))
)
DELETE FROM Dups
WHERE rn > 1
【问题讨论】:
-
您不能从 cte 中删除行,因此它们必须后跟一个 select。也许你想把它包装在一个子查询和你的 RN > 1 条件的 where 子句中