segunda-feira, 25 de março de 2013

Postgresql - Paginação com Filtros e Ordenação

Para o caso de precisarmos criar uma consulta que nos retorne os dados paginados com filtros e ordenados
Veja no exemplo abaixo como é facil usando Postgresql

------------------------------------------------------------------
SELECT Z.* FROM 
  (      SELECT  1 AS ID, 'UM'     AS DESCRICAO    ,12 AS NUMERO
   UNION SELECT  2 AS ID, 'DOIS'   AS DESCRICAO    ,15 AS NUMERO   
   UNION SELECT  3 AS ID, 'TRÊS'   AS DESCRICAO    ,26 AS NUMERO   
   UNION SELECT  4 AS ID, 'QUATRO' AS DESCRICAO    ,20 AS NUMERO  
   UNION SELECT  5 AS ID, 'CINCO'  AS DESCRICAO    ,23 AS NUMERO   
   UNION SELECT  6 AS ID, 'SEIS'   AS DESCRICAO    ,32 AS NUMERO   
   UNION SELECT  7 AS ID, 'SETE'   AS DESCRICAO    ,14 AS NUMERO  
   UNION SELECT  8 AS ID, 'OITO'   AS DESCRICAO    ,27 AS NUMERO   
   UNION SELECT  9 AS ID, 'NOVE'   AS DESCRICAO    ,11 AS NUMERO   
   UNION SELECT 10 AS ID, 'DEZ'    AS DESCRICAO    ,21 AS NUMERO   
  ) Z
           WHERE UPPER(Z.DESCRICAO) LIKE UPPER('%%') --filtros diversos
        ORDER BY Z.ID -- Ordenação
           LIMIT 3  -- Quantidade de registros por página
          OFFSET (3 - 1) * 3 
               --(Numero da Pagina -1) * Quantidade registros por página

------------------------------------------------------------------

Nenhum comentário:

Postar um comentário