sql - number - rownum db2 as400
¿Cómo arreglar "función no permitida" cuando se usa row_number() sobre una vista? (2)
select * from (
select a.*,row_number() over() as rk
from table1 tba
) as foo where rk between 11 and 20
Esto funciona para la tabla de la base de datos. Estoy usando una vista que es una combinación de 2 tablas. Cuando trato de hacer rownum está diciendo: " Función no permitida "
select * from (
select a.*,row_number() over() as rk
from view1 v1
) as foo where rk between 11 and 20
¿Alguna sugerencia o alternativa para rownum en DB2?
Debe incluir row_number()
en su vista
La otra alternativa para incluirlo en la vista, como sugirió @GregM, es ponerlo en un CTE:
WITH numbered as (SELECT a.*, ROW_NUMBER() OVER() as rk
FROM table1 as a)
SELECT *
FROM numbered
WHERE rk BETWEEN 11 AND 20
Tenga en cuenta que esto es tan lento como su código original (que funciona bien en mi versión).