quinta-feira, 23 de junho de 2016

Cuidado com SELECT TOP n no Access

O Access tem algumas características estranhas e uma delas me chamou a atenção:
Se o SELECT TOP n registros apresentar valores duplicados, todos serão exibidos no resultado, o que em algumas situações pode resultar em problemas no banco de dados.
Nas figuras abaixo, exemplifico o caso.
Interessante que, a mesma instrução no SQL Server 2008 R2 (e acredito que em qualquer versão do SQL Server), retorna apenas 1 registro, como era de se esperar.
Na sequencia, parte do help do Access 2007 comentando esse tipo de situação.

;-)




Retorna um determinado número de registros que se encontrem na parte superior ou na parte inferior de um intervalo especificado pela cláusula ORDER BY. Suponha que você queira os nomes dos primeiros 25 estudantes da turma de 1994:


SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;


Se você não incluir a cláusula ORDER BY, a consulta retornará um conjunto arbitrário de 25 registros da tabela Students que satisfaça a cláusula WHERE.
O predicado TOP não opta por valores iguais.

No exemplo anterior, se as médias de pontuação de grau 25 e 26 forem as mesmas, a consulta retornará 26 registros.


Nenhum comentário:

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.