Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Motta

Da série Queries (in)úteis

Recommended Posts

DECLARE
 VS_SAI VARCHAR2(400);
 VN_UNIVERSO NUMBER(3) := 60;
 VN_SERIE    NUMBER(2) := 6;
BEGIN
 FOR R IN (SELECT NUMERO
           FROM (SELECT LPAD(ROWNUM,2,'0') NUMERO, DBMS_RANDOM.VALUE ORDEM
                 FROM  USER_TAB_COLUMNS
                 WHERE ROWNUM <= VN_UNIVERSO
                 ORDER BY 2)
           WHERE ROWNUM <= VN_SERIE   
           ORDER BY 1)
 LOOP
   VS_SAI := VS_SAI || R.NUMERO || ' ';
 END LOOP;
 DBMS_OUTPUT.PUT_LINE(VS_SAI);
END; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

pô, questionando a "utilidade" do post ...

 

:cry: :rolleyes: :upset: :mellow: :pinch: :sick: :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, só que, se existe uma piada aí (dado o título), eu não entendi.

 

Tem algum erro na sintaxe, a query está complexa demais pra uma coisa tão simples ou é pura e simplesmente o fato de o cara ter criado algo que me parece uma função de banco de dados pra fazer algo que uma única linha de código, na linguagem server-side, resolveria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meio que piada, fazer um palpiteiro de Megasena com SQL.

Mais pura bobagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem algum erro na sintaxe, a query está complexa demais pra uma coisa tão simples ou é pura e simplesmente o fato de o cara ter criado algo que me parece uma função de banco de dados pra fazer algo que uma única linha de código, na linguagem server-side, resolveria?

 

Pois agora esta lançado o desafio, quero ver fazer em "uma única linha de código" o que o código em PL/SQL esta fazendo. :P

 

Pode usar qualquer linguagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De repente o autor não é tão confiante em programação quanto em SQL. >.<

 

Não é melhor mover isso para Entretenimento? Senão daqui há pouco aprece um dedo nervoso e negativa nós dois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é um pouco do que sinto falta no fórum até... Desafios não muito mirabolantes e livres de tecnologia, lógico que estamos aqui num fórum de Oracle, mas a

"futilidade" da solução despertou a ideia.

 

[off topic] Ninguém vai negativar nós pq ninguém acessa essa área do fórum além do Motta. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ideia me ocorreu no fim-de-semana conferindo um mega que eu tinha feito, fazer um palpiteiro em SQL.

 

O bloco foi para exibir numa linha só, que tirou a "pureza" da coisa.

 

Prog, na boa, I don´t give a sh*t para negativações ou positivações...

 

As vezes é bom provovar tumulto ... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois agora esta lançado o desafio, quero ver fazer em "uma única linha de código" o que o código em PL/SQL esta fazendo. :P

 

Pode usar qualquer linguagem.

Bom, confesso que falei sem pensar, afinal, como nunca joguei, não sei se existe alguma regra específica que influencie.

 

Rrespondi imaginando que seria apenas sortear 6 números de um intervalo pré-definido de 1 à 60.

 

Claro, dependendo da linguagem podem ser necessárias algumas linhas a mais.

 

om PHP, você sabe bem que é mole, mole:

 

<?php var_dump( array_rand( array_flip( range( 1, 60 ) ), 6 ) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

O array_rand() garante a não repetição?

Imagino que sim porque ela, pelo menos em teoria, embaralha o array, extrai e retorna, no caso, seis posições dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um teste aqui e parece que ele elimina as repetições mesmo.

 

Solução em Python:

>>> print sorted(random.sample(range(1,61),6))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta se superou nessa agora

 

O que quero ver é o povo usar a combinação gerada, apostar e ganhar e depois lembrar de dar a recompensa do Motta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que quero ver é o povo usar a combinação gerada, apostar e ganhar e depois lembrar de dar a recompensa do Motta.

 

Tá, farei isso hoje! Rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta aproveite que o povo ainda está no inicio e estipule o percentual do premio que terá direito :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.