EMBARALHAR REGISTROS DE UMA TABELA

TRTNCG 07/12/2016 12:44:59
#469472
Olá pessoal, Bom dia!

Bom, desenvolvi uma tela de boas vindas para o meu sistema onde esta mesma irá mostrar dicas de como trabalhar com o sistema, posso, cadastrar quantas quiser. No entanto, gostaria por exemplo, sempre que o usuário abrir não ser mostrado a mesma dica, ou melhor, pegar por exemplo se tenho 30 dicas na tabela, embaralhar para que seja mostrado aleatoriamente e não em sequencia de id, exemplificando melhor faço um select e me retorna o id dos registros (1,2,3,4,5,6,7,8,9,10...30) não queria que os registros fossem mostrados nessa ordem mais sim aleatoriamente tipo, 10,4,16,21,5,22,7... até o 30. Alguém teria algum exemplo?
JABA 07/12/2016 13:43:44
#469473
Estou supondo que esteja utilizando o MS-Access. Sua consulta poderia ser algo assim:

select * from tabela where id = Int ((30 - 1 + 1) * Rnd + 1)


www.techonthenet.com/access/functions/numeric/rnd.php
TRTNCG 07/12/2016 13:47:43
#469474
Uso o SQL Server
JABA 07/12/2016 13:59:38
#469477
Tente assim então:

select * from tabela where id = CAST(Rand(30) AS INT) 
TRTNCG 07/12/2016 14:20:48
#469478
Citação:

:
Tente assim então:

select * from tabela where id = CAST(Rand(30) AS INT) 



Não quero pegar somente 1 registro, mais sim o resultado do SELECT e embaralhar
TRTNCG 07/12/2016 14:34:47
#469480
Olha aí pessoal assim é o que eu queria

SELECT * FROM Northwind.Orders ORDER BY NEWID()

-- Abaixo trazemos apenas uma linha:

SELECT TOP 1 * FROM Northwind.Orders ORDER BY NEWID()
JABA 07/12/2016 16:13:05
#469486
Tente assim então:

SELECT * FROM Northwind.Orders ORDER BY RAND() 
DS2T 07/12/2016 16:37:06
#469488
Algo assim também funciona:


SELECT Rand(CampoIdTabela + DatePart(ms, getdate())) AS Semente FROM Tabela order by Semente

Tópico encerrado , respostas não são mais permitidas