Red de conocimiento informático - Problemas con los teléfonos móviles - Varias formas de escribir paginación SQL

Varias formas de escribir paginación SQL

Varios SQL de paginación típicos, el siguiente ejemplo es 50 entradas por página, 198*50=9900, obteniendo datos de la página 199.

--Escribe 1, no en/arriba

selecciona los 50 mejores * de la prueba de página

donde la identificación no está (selecciona la identificación de los 9900 principales de la prueba de página ordena por identificación )

ordenar por id

--Escribe 2, no existe

selecciona los 50 mejores * de pagetest

donde no existe

p>

(seleccione 1 de (seleccione 9900 ID principales del pedido de prueba de página por ID)a donde a.id=pagetest.id)

ordene por ID

--escribir 3. max/top

seleccione los 50 mejores * de pagetest

donde idgt; (seleccione max(id) de (seleccione los 9900 mejores id de pagetest ordenar por id )a)

ordenar por id

--escribir 4, número_fila()

seleccione los 50 mejores * de

(seleccione número_fila () over(order by id)rownumber, * from pagetest)a

donde rownumbergt;select * from

(select row_number() over( ordenar por id) número de fila, * de la páginatest)a

donde número de filagt; 9900 y número de filalt; 9951

seleccione * de

(seleccione número_fila() sobre( ordenar por id)número de fila, * de páginatest)a

donde número de fila entre 9901 y 9950

--Escribe 5, como se ve en una publicación en csdn, variante número_fila() Registro de serie los números no se generarán en función de los campos existentes. Primero, filtre y ordene según las condiciones, y luego filtre las columnas constantes en el conjunto de resultados para generar números de serie de registros.

seleccione * de (

<). p >seleccione número_fila() sobre (ordenar por columna temporal)número de fila, *

desde (seleccione las 9950 columnas temporales superiores=0, * desde prueba de página donde 1=1 ordene por ID)a

) b

donde número de filagt;9900