Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mengulang kueri di Oracle

Setiap panggilan DBMS_RANDOM.value() mengembalikan nilai yang berbeda . Akibatnya, tidak ada jaminan bahwa panggilan apa pun akan jatuh di antara batas-batas Anda. Bahkan secara statistik tidak mungkin. Akibatnya sebagian besar waktu Anda akan mendapatkan NULL yang dikembalikan, karena Anda tidak mendefinisikan cabang ELSE.

Berikut adalah solusi alternatif yang menghasilkan seratus nilai acak.

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
;

Mengingat cara kode Anda mendefinisikan batas-batas cabang, sebagian besar random_groups akan menjadi 4 .

Tidak jelas dari kode (mainan?) Anda yang diposting apa peran TEMP_TRT, jadi saya memutuskan untuk mengabaikannya. Harap edit pertanyaan Anda untuk menambahkan lebih banyak detail jika ini membuat Anda tidak senang



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekspresi reguler untuk mengembalikan nomor setelah string yang cocok di Oracle

  2. pencarian teks oracle blob

  3. Transpose satu baris menjadi banyak baris Oracle

  4. Bakat cara menyalin satu db ke yang lain

  5. SQL:Apakah mungkin untuk 'mengelompokkan menurut' menurut hasil fungsi 'suka'?