在删除语句中偏移和获取
Offset and fetch in a delete statement
我想根据两个动态参数 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);
当运行重复查询时,你会得到一个table由p1行组成的结果。但正如请求评论中的粘性位所提到的:没有 ORDER BY
这些行将是任意的。
我想根据两个动态参数 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);
当运行重复查询时,你会得到一个table由p1行组成的结果。但正如请求评论中的粘性位所提到的:没有 ORDER BY
这些行将是任意的。