SQL – Selecionar n linhas de uma consulta 6


Muitas das vezes precisamos recuperar apenas algumas das diversas linhas retornadas por uma consulta SQL. Por isso, para economizar alguns bytes trafegando pela rede, nada mais fácil do que fazer a consulta só retornar a quantidade de linhas desejadas. Para fazer isso, segue abaixo o comando referente a diversos banco de dados.

SQL SERVER

Onde n é o número de linhas desejadas, nome_campos são os campos ou o campo que será retornado e nome_tabela o nome da tabela.

Utilizando este recurso conseguimos também fazer paginação de dados. Por exemplo:

Onde 5 é o número de registro por página e 10 é o resultado da multiplicação da quantidade de registros pela página atual. No exemplo, o SQL retornaria os registros da segunda página. Para retornar da terceira bastaria mudar o SQL substituindo o 10 por 15 e assim por diante.

MYSQL

ou

No MySQL é ainda mais fácil fazer paginação de dados. Veja.

Ex.:

Da mesma maneira que no exemplo do SQL Server, o resultado se aplica a uma paginação de 5 registros por página.
A paginação ocorre então ao mudar o valor 10 para 15, 20, 25 etc… Ou seja multiplicar a núrero da página pela quantidade de registro por página.

FIREBIRD

Para fazer a paginação e pular os registros utiliza-se a cláusula SKIP.

INTERBASE

No INTERBASE não há o comando FIRST. Usa-se a cláusula ROWS  no lugar.

Para fazer a paginação e pular os registros utiliza-se a cláusula TO.

Related Posts Plugin for WordPress, Blogger...
  • Pingback: Selecionando a segunda linha de uma consulta no sql server()

  • Edson

    As informações de linha que você comenta é referente a minha dúvida abaixo?
    Quebrar linha pelas categorias e subtotalizar

    Categoria Frutas <———- Aqui quebra por categoria
    ——————————————————
    Codigo Descricao Quantidade
    ——————————————————
    1010 maçã 10
    2020 banana 9
    5150 abacate 5
    6788 abacaxi 3
    ——————————————————
    27 <——- subtotalizando

    Categoria Perfumaria <—–Aqui quebra por categoria
    ——————————————————
    Codigo Descricao Quantidade
    ——————————————————
    9810 des masc xtrem 25
    7520 col flor lis 20
    3350 hidratante fps 30 19
    2288 batom cereja 10
    3745 batom marrom 7
    5478 col fem luz do sol 7
    8977 col mas Max 6
    6578 des fem blue 5
    1573 necessaire rosa 3
    1008 col rose mask 2
    ——————————————————
    167 <——- subtotalizando

  • Marcus Siqueira

    Não. Para pegar a quantidade total de cada categoria como no seu exemplo, você deverá fazer um sum e agrupar pelo código da categoria. Por exemplo:

    Agora para exibir na ordem somente, basta utilixar o order by

    Mas acho que esta não é a sua dúvida. Se o que você está querendo fazer é um relatório (e eu penso que seja isto), e está fazendo este relatório na mão, você tem várias opções. Você pode primeiro fazer só o select buscando o código e a descrição das categorias e para cada categoria você faz outro sql buscando os produtos com essa categoria. Se você estiver utilizando um software de relatórios como o Crystal Report nem é preciso, basta fazer uma consulta normalmente e mandar agrupar por categoria. Dá pra fazer todas as somas automaticamente. Bom, se quiser que eu explique como fazer no Cristal é só falar.

  • Robson Carvalho

    E para selecionar somente a segunda linha de uma subconsulta. Tipo, pegar a segunda linha de cada contrato que pagou a segunda mensalidade. Não importanto a quantidade gerada de mensalidades e a quantidade de clientes.

    Exemplo:

    Cliente, Vencimento, Pagamento, ValorPago
    1, 30/01/2011, 10/02/2011, 22,00
    1, 28/02/2011, 01/03/2011, 22,00
    2, 30/01/2011, 30/01/2011, 22,00
    2, 28/02/2011, 10/03/2011, 22,00
    etc, etc

    Quero todos os clientes que pagaram somente a LINHA 2.

    O resultado seria

    1, 28/02/2011, 01/03/2011, 22,00 (Segundo Pagamento)

    2, 28/02/2011, 10/03/2011, 22,00 (Segundo Pagamento)

    Descartando o primeiro pagamento e os demais depois destes. Tem como ser feito isto? Será que poderia me ajudar? Não tenho outro identificador mais facil, como uma coluna Parcela, que poderia ser o numero da parcela, quando desenvolveram isto, não pensaram assim, infelizmente.

  • E como eu faria para paginar consulta no BD DataFlex? Grato.

    • Marcus Siqueira

      Desculpa amigo mas não conheço esse BD.