Já expliquei aqui no blog como selecionar uma porcentagem de registros, mas não expliquei como funciona a claúsula TOP sem o PERCENT (indicativo de porcentagem).

O TOP sem o PERCENT retorna os primeiros registros conforme o número especificado após a clausula.

SELECT TOP 50

*

FROM

Cliente

A instrução acima irá informar os primeiros 50 clientes retornados na consulta. Muitos utilizam o TOP quando necessitam retornar o maior / menor registro de uma tabela, criando uma instrução similar a esta com um TOP 1 e ordenando por decrescente / ascendente para se obter o resultado. Há uma outra forma de se obter o mesmo resultado consumindo menos recursos, basta substituir pelo MAX / MIN, mas isto ficará para um próximo artigo.

Até o momento nem sabia que existia uma instrução como essa no SQL. Esta instrução consiste em informar uma porcentagem determinada de registros existentes.

SELECT TOP 50 PERCENT

ID,

Nome

FROM

Produto

A consulta acima informará os primeiros 50% retornados na consulta, lembrando que, como não há ordenação de nenhum campo a ordem de retorno é baseada no retorno do servidor. Muitas vezes a consulta retorna a ordem de cadastro do registro, porém isto PODE SER (não é uma regra) alterado no momento em que a tabela possui muitos registros, experimente filtrar uma tabela que tenha milhares de registros e verá que a ordem de retorno nem sempre será baseada na da inserção.

Não deixe de comentar sobre o post, até a próxima.