Red de conocimiento informático - Material del sitio web - ¿Cómo escribir sentencias SQL de paginación en una base de datos Oracle?

¿Cómo escribir sentencias SQL de paginación en una base de datos Oracle?

Empresa interna:

Parámetros de paginación: tamaño = 20 páginas = 2;

No utilice la consulta ORDER BY;

Utilice dos Subconsultas anidadas de filtros (recomendado).

Sentencia SQL:

SELECT *

FROM (SELECT ROWNUM AS rowno, t.*

FROM DONORINFO t

DONDE t.CUMPLEAÑOS ENTRE HASTA_FECHA ('19800101', 'aaaammdd')

Y HASTA_FECHA ('20060731', 'aaaammdd')

Y ROWNUM lt;= 20* 2) table_alias

WHERE table_alias.ROWNUM gt; 20*(2-1);

Extensión:

wnum siempre comienza desde 1, si el primero es If. la condición no se cumple, el wnum de la segunda condición vuelve a ser 1, y así sucesivamente. El expediente no cumple las condiciones.

Se puede entender así: wnum es una secuencia, que es el orden en que la base de datos Oracle lee los datos del archivo de datos o del búfer. El primer registro que obtiene tiene un valor de número de fila de 1 y el segundo registro tiene un valor de número de fila de 2.

Y así sucesivamente: cuando se utilizan "gt;, gt;=, =, entre.....y" estas condiciones, el primer registro extraído del búfer o archivo de datos El valor de Crownum es 1 , que no cumple con las condiciones de la declaración SQL, se eliminará y luego se recuperará un registro. El número de fila del siguiente registro seguirá siendo 1, se eliminará nuevamente y así sucesivamente, no habrá más datos.