Paginar recordsets en DB2

Para paginar filas en Iseries Db2, se hace uso de la sentencia rownumber(), que nos permite generar una pseudo columna numerada por la cual podemos establecer rangos de filas a devolver. Esta función que forma parte del grupo de funciones OLAP de Db2 cuenta con ejemplos de su uso en la siguiente dirección.

Como puede verse en el  enlace anterior, rownumber se compone de la llamada a la función seguida de la definición de orden del conjunto de datos a devolver.

rownumber() OVER (ORDER BY COLUMNAME)

De esta manera, la pseudo columna numerada resultado de hacer uso de ella nos permitirá limitar el número de filas a devolver.  como se muestra en el ejemplo siguiente que nos devuelve los primeros 10 artículos encontrados: 

SELECT ARTICULO, NOMBRE, EXISTENCIA
  FROM (   SELECT ARTICULO,  NOMBRE, EXISTENCIA, rownumber() OVER (ORDER BY ARTICULO) AS NUMFILA
             FROM LIBRERIA.CATALOGOARTICULOS
            WHERE NOMBRE Like '%JABÓN%'
        ORDER BY ARTICULO
       ) DATA
 WHERE NUMFILA >= 1 and 
       NUMFILA <= 10

Los cálculos de número de páginas puede hacerse simplemente ejecutando un count sobre el conjunto de datos completo y de esa manera con una simple división del total de filas entre las filas por página tendremos el total de páginas a mostrar.

1 Trackback / Pingback

  1. SQL Server – Paginar registros de un DataSet o RecordSet. | Blog del Poli

Deja un comentario