Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да повторите заявка в Oracle

Всяко извикване на DBMS_RANDOM.value() връща различна стойност . Следователно няма гаранция че всяко обаждане ще попадне между всяка ваша граница. Всъщност това е статистически малко вероятно. Следователно през повечето време ще получите върнат NULL, защото не сте дефинирали клон ELSE.

Ето едно алтернативно решение, което генерира сто произволни стойности.

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
;

Предвид начина, по който кодът ви дефинира границите на разклоненията, повечето от random_groups ще бъде 4 .

От публикувания (играчка?) код не става ясно каква е ролята на TEMP_TRT, затова реших да го игнорирам. Моля, редактирайте въпроса си за да добавите повече подробности, ако това ви прави нещастни



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Опитвам се да постигна резултат под резултата

  2. Oracle изберете стойност до първия интервал или края на реда

  3. Сравнете низ в Oracle Case When

  4. Преобразуване на число в дата sql oracle

  5. Oracle:Достъп само за четене до схемата за друг потребител?