Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como repetir uma consulta no Oracle


Cada chamada de DBMS_RANDOM.value() retorna um valor diferente . Consequentemente, não há nenhuma garantia que qualquer chamada cairá entre qualquer um de seus limites. Na verdade, é estatisticamente improvável. Conseqüentemente, na maioria das vezes você obterá um NULL retornado, porque você não definiu nenhuma ramificação ELSE.

Aqui está uma solução alternativa que gera cem valores aleatórios.
with dr as (
    select DBMS_RANDOM.value val
    from dual
    connect by level <= 100 
)
select dr.val
      , case when dr.val >= 0 and dr.val<=0.053 then 1
            when dr.val > 0.053 and dr.val <= 0.097 then 2
            when dr.val > 0.097 and dr.val <= 0.142 then 3
            else 4 
end random_groups
from dr
;

Dada a maneira como seu código define os limites das ramificações, a maioria dos random_groups será 4 .

Não está claro no seu código postado (brinquedo?) qual é o papel do TEMP_TRT, então decidi ignorá-lo. Por favor, edite sua pergunta para adicionar mais detalhes se isso o deixa infeliz