quinta-feira, 3 de maio de 2007

Quer sortear um registro do banco de dados?

Olá a todos.

Neste post algo não muito usual, mas é no mínimo muito legal.

Alguma vez você já precisou fazer uma espécie de 'sorteio' no banco de dados? Tudo bem, eu admito que dificilmente será o caso.

Mas, se você quiser sortear um felizardo dentro do seu banco de dados você não precisa criar um algoritmo que gera um Random(), testa se existe no banco e caso não exista gere Random() de novo <-- sinceramente isso não dá! xD

Vou colocar abaixo como fazer nos diferentes bancos de dados:

MySQL

select [colunas] from [tabela]
order by rand()
limit 1

PostgreSQL:

select [colunas] from [tabela]
order by random()
limit 1


MS SQL Server:

select top 1 [colunas] from [tabela]
order by newid()

IBM DB2

select [colunas] from [tabela]
order by rand()
fetch first 1 rows only

Oracle:

select [colunas] from
( select [colunas] from [tabela]
order by dbms_random.value )
where rownum = 1

Então valeu. Espero que este post ajude em algo. Abraços.

Um comentário:

  1. Gostei ....
    Po, nem precisa viajar muito...
    pra estatística, selecionar uma amostragem.
    Show!

    ResponderExcluir

 
BlogBlogs.Com.Br