您好,我在删除行时遇到问题,
我想在数据库中保留两行并删除所有其他行
我在此链接for delete row中找到了一个查询
但是它提供了mysql语法限制功能。
但是在oracle中没有可用的限制变量。
我该怎么做?
DELETE FROM Table
WHERE DateColumn NOT IN (SELECT DateColumn
FROM Table
GROUP BY date(DateColumn)
ORDER BY DateColumn DESC
LIMIT 2);
最佳答案
这个查询可以通过这个查询来实现
DELETE FROM TABLE
WHERE ROWID NOT IN
(SELECT ROWIDS FROM (SELECT MIN(ROWID) ROWIDS
FROM TABLE
GROUP BY DATECOLUMN
ORDER BY DATECOLUMN DESC)
WHERE ROWNUM <= 2);
最里面的查询将返回表中rowid的最小值,然后直接外面的查询将仅选择两行以避免最外层的删除。
关于sql - 从数据库中删除除Oracle中的前两行外的所有行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23054995/