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. हाइबरनेट (EntityManager) या JPA का उपयोग करके Oracle फ़ंक्शन या प्रक्रिया को कैसे कॉल करें?

  2. C# TimeSpan के साथ OracleParameter का उपयोग करना - शाब्दिक मेल नहीं खाता

  3. ANSI और गैर-ANSI जॉइन में क्या अंतर है, और आप किसकी अनुशंसा करते हैं?

  4. Oracle में किसी अन्य के साथ संग्रहीत कार्यविधि को कॉल करें

  5. ओपच प्रीरेक