[英]How to do DB2-SQL delete top N … in AS400
SELECT * FROM DB FETCH 100 ROW ONLY
>确定。
delete from DB FETCH 100 ROW ONLY
->为什么不delete from DB FETCH 100 ROW ONLY
?
仅获取第一个xxx行
当您不需要完整的结果集时,基本上只是性能捷径。 该手册说:
在选择语句中指定提取优先子句使结果表为只读。 只读结果表不得在UPDATE或DELETE语句中引用。 提取优先条款不能出现在包含UPDATE子句的语句中。
这应该工作
DELETE FROM mytbl
WHERE pk IN (SELECT pk FROM mytbl
FETCH FIRST 100 ROWS ONLY
)
您可以尝试以下方法:
DELETE FROM (SELECT * FROM DB FETCH 100 ROWS ONLY)
编辑:-
您可以尝试以下方法:
DELETE FROM (SELECT * FROM "BACKUPLIB/SCDKISLOG3" FETCH 100 ROWS ONLY)
使用以下形式:
delete from mytable a where rrn(a) in
(select rrn(b) from mytable b fetch first 100 rows only)
无法使用{从(选择...)删除。”表函数仅在子选择中有效,而在DELETE中无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.