values - Cómo hacer que DB2-SQL elimine N superior... en AS400
is null db2 (3)
Puede intentar esto: -
DELETE FROM (SELECT * FROM DB FETCH 100 ROWS ONLY)
EDITAR:-
Puede intentar esto: -
DELETE FROM (SELECT * FROM "BACKUPLIB/SCDKISLOG3" FETCH 100 ROWS ONLY)
SELECT * FROM DB FETCH 100 ROW ONLY
-> está bien.
delete from DB FETCH 100 ROW ONLY
-> ¿por qué no?
FETCH FIRST xxx FILAS SOLAMENTE
Básicamente es solo un atajo de rendimiento cuando no necesitas un conjunto completo de resultados. El manual dice:
La especificación de la cláusula fetch-first-en una declaración de selección hace que la tabla de resultados sea de solo lectura. No se debe hacer referencia a una tabla de resultados de solo lectura en una instrucción UPDATE o DELETE. La cláusula fetch-first no puede aparecer en una declaración que contenga una cláusula UPDATE.
Esto debería funcionar
DELETE FROM mytbl
WHERE pk IN (SELECT pk FROM mytbl
FETCH FIRST 100 ROWS ONLY
)
Use este formulario:
delete from mytable a where rrn(a) in
(select rrn(b) from mytable b fetch first 100 rows only)
No se puede usar el formulario {delete from (select ...}. Una función de tabla solo es válida en una subselección, no en un DELETE.