delete语句中的偏移和获取



我想删除一些基于两个动态参数P1和P2(数字(的特定行

使用简单的Select语句:

SELECT * FROM TABLE WHERE (conditions) OFFSET P1 ROWS FETCH NEXT P2 ROWS ONLY;

我只是想删除这些行,但找不到正确的方法。我现在正在做的事情有点像,而且看起来不太好:

DELETE TABLE WHERE id in (SELECT id FROM TABLE WHERE (conditions) OFFSET P1 ROWS FETCH NEXT P2 ROWS ONLY);

使用主键或ROWID访问行:

DELETE FROM mytable
WHERE rowid IN
(SELECT rowid FROM mytable WHERE (conditions) OFFSET p1 ROWS FETCH NEXT p2 ROWS ONLY);

当重复运行查询时,您将得到一个由p1行组成的表。但是正如请求注释中的粘性位所提到的:如果没有ORDER BY,这些行将是任意的。

最新更新