Página Inicial > PHP > SQL SERVER 2008 agora com Paginação no Banco

SQL SERVER 2008 agora com Paginação no Banco

Salve Salve Pessoal…

Hoje um amigo de trabalho me deu uma noticia interessante. O SQL SERVER 2008 está com Paginação no próprio banco de dados, ou seja, você só precisará enviar um select e ele cuida da paginação para você.

Um select semelhante a este:

SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY dc_bairro ASC) AS Row ,* FROM PI_ODS_SICAT_CDABA ) AS PI_ODS_SICAT_CDABA WHERE Row between 1 AND 100

Só será necessário incrementar o número de linhas por pagina que se deseja obter…

Beleza, é isso, apenas para deixar registrado aqui a informação.

Abraços.

Categories: PHP Tags:
  1. 24, agosto, 2009 em 23:51 | #1

    Mas isso aí você faz basicamente usando o LIMIT.

    Exemplo: SELECT * FROM `produtos` LIMIT 0, 100;

    Onde o 0 seria o registro inicial gerado pela query e 100 seria a quantidade de registros que seriam retornados..

    Exemplo de paginação

    SELECT * FROM `produtos` LIMIT 0, 10; // Pega os 10 primeiros registros
    SELECT * FROM `produtos` LIMIT 10, 10; // Pega os 10 próximos registros: 11 até o 20
    SELECT * FROM `produtos` LIMIT 20, 10; // Pega os 10 próximos registros: 21 até o 30

    Você pode fazer algo do tipo:
    SELECT * FROM `produtos` LIMIT ({$QT} *{$PAGE}), {$QT};

    onde $QT é a quantidade de itens por página e $PAGE é o número da página começando a partir do zero, ex: 1ª página seria 0, 2ª página seria 1, etc..

    Mas de qualquer forma, já é um avanço…

  2. 1, dezembro, 2009 em 17:05 | #2

    O Topico é SQL! e não MySQL…

  3. mano menezes
    13, abril, 2010 em 14:37 | #3

    cala a boca idiota, ele esta usando sql server

  4. Gulias
    28, abril, 2010 em 16:06 | #4

    O cara te orienta

  5. 17, agosto, 2010 em 15:51 | #5

    Amigo eu testei o codigo no SQL Server 2008 mas não funciona quando se tem uma paginação de uma busca, funciona somente quando vc tras todos os registro do banco, quando vc tem um where o campo Row se mantem como se o resultado fosse de todos os registros. Não entendo como a microsoft não foi se atentar para uma funcionalidade tão importante para nos programadores web…

  6. 17, agosto, 2010 em 15:53 | #6

    Se alguem saber usar paginação em buscas do sqlserver 2008 posta ai por favor…

  7. 18, agosto, 2010 em 14:32 | #7

    A muito custo consegui criar a consulta com paginação utilizando criterios de busca. Deu mais trabalho ainda adaptar no codeigniter. Mas para quem for tentar é necessário que toda a consulta original com os criterios de busca estejam dentro do from no select pode colocar apenas * o where Row between x and y deve ficar no where fora do from, dentro da subconsulta que vai no from também nao pode conter order by fica na consulta principal da paginacao, se alguem entendeu alguma coisa do que eu disse e for tentar fazer o caminho é por ai… boa sorte a todos!

  8. 18, agosto, 2010 em 14:43 | #8

    Bom, pessoal, com atraso mas vejam só, a notícias que eu “espelhei” aqui não foi uma experiência de desenvolvimento, eu até então não utilizei ou migrei minhas aplicações para o SQL 2008. portanto não utilizei a informação aqui “espelhada”.

    E acredito que é exatamente o exemplo descrito no post não?

    SELECT *
    FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY dc_bairro ASC) AS Row ,*
    FROM PI_ODS_SICAT_CDABA
    ) AS PI_ODS_SICAT_CDABA
    WHERE Row between 1 AND 100

  1. Nenhum trackback ainda.