... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$145,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Como selecionar registros aleatoriamente?

Imagine uma tabela com centenas de questões de prova e que você queira sortear apenas 10 dessas questões. 

Usando Access - Sorteio Registros

 

O Microsoft Access pode realizar esta tarefa de forma bem simples, utilizando a função Rnd() no ordenamento da consulta.  Observe a escrita SQL da consulta qrySorteioTodas:

SELECT Id,Questão,DataQuestão
FROM tblQuestões
ORDER BY Rnd(IsNull([questão])+1);

A princípio, parece bem estranho, o uso do IsNull([questão]) na função Rnd(), uma vez que sempre retornará o valor 0 (falso), pois não existem questões em branco.  Como resultado teremos Rnd(0+1).  Então, qual seria o objetivo?  O objetivo é o de  fazer com que o campo [questão] apareça na cláusula ORDER BY  para que este considere o campo a ser ordenado.  Poderia ser assim também:

SELECT Id,Questão,DataQuestão
FROM tblQuestões
ORDER BY Rnd(([questão]='1')+1);

Baixe o arquivo e faça o teste:

Clique aqui e baixe o arquivo exemplo.

Abra a consulta qrySorteioTodas do arquivo exemplo fornecido.  Clique no botão Atualizar Tudo da Ribbon e observe a coluna das Questões com a ordem alterada:

Usando Access - Sorteio Registros

Para limitar o número de registros apresentados em uma consulta, utilizamos a cláusula TOP.  Confira na escrita SQL abaixo:

SELECT TOP 10 Id, Questão, DataQuestão
FROM tblQuestões
ORDER BY Rnd(IsNull([questão])+1);

Abra a consulta qrySorteioTop10 do arquivo exemplo e veja o resultado de apenas 10 questões sendo apresentadas.

Bom estudo!


 

 


1 comentário(s)

JorgeK   24/03/2017 06:17:24

Muito bom.
Precisei criar uma rotina q fizesse um sorteio de clientes p outros vendedores e ficou bem legal.
Obrigado por compartilhar!


Envie seu comentário: