Consulta Para Retornar Dados Aleatórios Do Banco
#1
Posted 07/05/2005, 11:05
Alguém aqui conhece alguma instrução SQL que seja capaz de retornar um registro qualquer do banco de dados, como um sorteio?!
Desde já, muito obrigado!
Abraços!
- HaroNism and LarPhozyHah curtiram esta postagem
#2
Posted 07/05/2005, 11:14
Mero mortal!
#3
Posted 09/05/2005, 23:16
Estou usando um SQL server.Seria bem interessante se você informasse qual sistema de banco de dados esta sendo utilizado.
#4
Posted 10/05/2005, 16:09
Ninguém conhece um código ou alguma maneira de retornar um dado aleatório como em um sorteio?!Estou usando um SQL server.Seria bem interessante se você informasse qual sistema de banco de dados esta sendo utilizado.
=/
De qualquer forma, mesmo assim, muito obrigado! =|
#5
Posted 10/05/2005, 16:54
RND
#6
Posted 10/05/2005, 18:07
SELECT TOP 1 * FROM tabela ORDER By NewID()
Já fiz isso em uma solução alguns anos atras e funcionou muito bem, se precisar de mais de 1 resultado aleatório, aumente a quantidade do TOP.
Mero mortal!
#7
Posted 12/05/2005, 08:02
Ele está dando o seguinte erro, Prog :
Tipo de erro:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC para Microsoft Access] Função 'NewID' indefinida na expressão.
/asp/prof_renato/teste_alex.asp, line 8
Como nunca usei essa função "NewID", eu não sei porque está dando esse erro. Ela precisa de parâmetros?!
Para viniciusjau :
Pelo que eu sei, o randomize apenas traz um número randômico entre 0 e 1... no meu caso, eu estou lidando com uma quantidade ilimitada de registros... e preciso escolher randomicamente apenas 1 deles. Não vejo como fazer usando a função "Rnd". Mande um exemplo de como eu deveria proceder, por favor.
Desde já agradecido!
Renato
#8
Posted 13/05/2005, 13:07
O banco de dados o qual roda esse parametro é um SQL Server 2000, ele funcionava também quando era SQL Server 7.0, não sei a respeito de outras versões.
A conexão ASP esta sendo feita diretamente com ADO, com as seguintes caracteristicas:
<%
response.expires = 0
strCx = "server=127.0.0.1;database=nome;uid=usuario;pwd=senha;Provider=SQLOLEDB"
set cx = server.createObject("ADODB.Connection")
cx.commandTimeout = 900
cx.cursorLocation = 3
sub destroi
cx.close
set cx = nothing
end sub
on error resume next
cx.open strCx
if err.description <> "" then
destroi
err.clear
response.redirect "fora_do_ar.asp"
end if
%>
Mero mortal!
#9
Posted 13/05/2005, 17:08
saca só....Para viniciusjau :
Pelo que eu sei, o randomize apenas traz um número randômico entre 0 e 1... no meu caso, eu estou lidando com uma quantidade ilimitada de registros... e preciso escolher randomicamente apenas 1 deles. Não vejo como fazer usando a função "Rnd". Mande um exemplo de como eu deveria proceder, por favor.
SELECT * FROM tabela WHERE campos ORDER BY Rnd(Int(Now()*[ID])-Now()*[ID]);"
ai ele escolhe pelo ID que é no meu caso um campo auto numérico...
não sei se o rnd(), vai funcionar no SQSERVER, se não funfar, tem q usa o randomize
#10
Posted 14/05/2005, 16:07
SELECT TOP 1 * FROM tabela WHERE id >= (RAND() * (SELECT MAX(id) FROM tabela))
O NewID() pode retornar diversos números aleatórios.
A sintaxe do Vinicius não testei no SQL Server, funciona perfeitamente em Access, segunda-feira posto uma posição mais concreta a respeito.
Mero mortal!
#11
Posted 19/05/2005, 08:06
é exatamente rs...A sintaxe do Vinicius não testei no SQL Server, funciona perfeitamente em Access, segunda-feira posto uma posição mais concreta a respeito.
levei por base que o acess aceite o TOP e o SQL tbm..... então sub entendi que ele aceitaria o RND tbm...
#12
Posted 04/01/2013, 07:21
poderia me ajudar por favor.
coloquei como vc fez
PESQUISAR="SELECT TOP 12 * FROM tabela WHERE id >= (RAND() * (SELECT MAX(id) FROM tabela ))"
e da o erro:
Microsoft][Driver ODBC para Microsoft Access] Função 'RAND' indefinida na expressão.
precisava que listasse 12 registros aleatorios no banco access sem repeti-los
---
então fiz assim funciona uma beleza mais repete:
PESQUISAR="SELECT TOP 12 * FROM tabela order by Rnd(Int(Now()*[ID])-Now()*[ID]) "
entao fiz assim, funciona mais não dá aleatorio:
PESQUISAR="SELECT distinct TOP 12 * FROM tabela "
o distinct não roda com order by
Muito obrigado se puder me ajudar
------------------------------------------
Para retornar apenas 1 registro aleatório, em SQL Server, também pode ser utilizado a seguinte sintaxe:
SELECT TOP 1 * FROM tabela WHERE id >= (RAND() * (SELECT MAX(id) FROM tabela))
O NewID() pode retornar diversos números aleatórios.
A sintaxe do Vinicius não testei no SQL Server, funciona perfeitamente em Access, segunda-feira posto uma posição mais concreta a respeito.
#13
Posted 07/01/2013, 10:17
erro:
[Microsoft][Driver ODBC para Microsoft Access] Função 'RAND' indefinida na expressão.
tentei assim mais esta repetindo
PESQUISAR = "SELECT DISTINCTROW TOP 9 id FROM tabela order by RND(INT(NOW*id)-NOW*id)"
muito obrigado
------------------
Olá amigo estou com este mesmo problema a dias, vc consegui resolver?
poderia me ajudar por favor.
coloquei como vc fez
PESQUISAR="SELECT TOP 12 * FROM tabela WHERE id >= (RAND() * (SELECT MAX(id) FROM tabela ))"
e da o erro:
Microsoft][Driver ODBC para Microsoft Access] Função 'RAND' indefinida na expressão.
precisava que listasse 12 registros aleatorios no banco access sem repeti-los
---
então fiz assim funciona uma beleza mais repete:
PESQUISAR="SELECT TOP 12 * FROM tabela order by Rnd(Int(Now()*[ID])-Now()*[ID]) "
entao fiz assim, funciona mais não dá aleatorio:
PESQUISAR="SELECT distinct TOP 12 * FROM tabela "
o distinct não roda com order by
Muito obrigado se puder me ajudar
------------------------------------------
Para retornar apenas 1 registro aleatório, em SQL Server, também pode ser utilizado a seguinte sintaxe:SELECT TOP 1 * FROM tabela WHERE id >= (RAND() * (SELECT MAX(id) FROM tabela))
O NewID() pode retornar diversos números aleatórios.
A sintaxe do Vinicius não testei no SQL Server, funciona perfeitamente em Access, segunda-feira posto uma posição mais concreta a respeito.
#14
Posted 13/09/2017, 20:23
Viagra From Mexico Pharmacy cheap cialis Propecia Pack Original Kamagra Oral Jelly Priligy 60 Miligramos cheap cialis Generic Free Shipping Clobetasol 0.05% Psoriasis
#15
Posted 01/10/2017, 07:26
accutane discount card Antibiotics On Line Priority Delivery cialis Prix Viagra Belgique
Propecia Eficacia 1 Mg Gabapentin Powder Online cialis Buy Now No Rx Acticin Online Real Free Shipping Clobetasol 0.05% Visa Accepted
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)