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
1 | SELECT TOP n nome_campos FROM nome_tabela |
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:
1 2 3 4 5 6 7 | SELECT TOP 5 nome_campos FROM nome_tabela WHERE (campo_chave NOT IN (SELECT TOP 10 campo_chave FROM nome_tabela) ) |
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
1 | SELECT * FROM TABELA LIMIT n |
ou
1 | SELECT * FROM TABELA LIMIT 0, n |
No MySQL é ainda mais fácil fazer paginação de dados. Veja.
Ex.:
1 | SELECT * FROM TABELA LIMIT 10, 5 |
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
1 | SELECT FIRST n nome_campos FROM nome_tabela; |
Para fazer a paginação e pular os registros utiliza-se a cláusula SKIP.
1 | SELECT FIRST n SKIP x nome_campos FROM nome_tabela; |
INTERBASE
No INTERBASE não há o comando FIRST. Usa-se a cláusula ROWS no lugar.
1 | SELECT nome_campos FROM nome_tabela ROWS n; |
Para fazer a paginação e pular os registros utiliza-se a cláusula TO.
1 | SELECT nome_campos FROM nome_tabela ROWS 5 TO 10; |

Pingback: Selecionando a segunda linha de uma consulta no sql server()