Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

मानों की सूची में, कई श्रेणियों के विरुद्ध मिलान की गई संख्याओं की सूची का अनुवाद करने के लिए SQL क्वेरी

मैं अनुमान लगा रहा हूं कि आप संख्याओं के उस सेट को एक स्ट्रिंग के रूप में पास करना चाहते हैं और अलग-अलग संख्याओं में विभाजित करना चाहते हैं। यह आपके विचार से कठिन है, क्योंकि Oracle बिल्ट-इन टोकननाइज़र के साथ नहीं आता है। अजीब, हुह?

दास इंटरवाब्स के आसपास कई पीएल/एसक्यूएल टोकननाइज़र समाधान दस्तक दे रहे हैं। मैं अनूप पाणि के कार्यान्वयन के एक प्रकार का उपयोग कर रहा हूं, जो रेगेक्स का उपयोग करता है (इसलिए केवल ओरेकल 10 जी या उच्चतर)। मेरा संस्करण संख्याओं की एक सरणी देता है जिसे मैंने SQL प्रकार के रूप में घोषित किया है:

SQL> create or replace type numbers as table of number
  2  /

Type created.

SQL>

इसका मतलब है कि मैं इसे एक चयन कथन में तालिका() फ़ंक्शन में इनपुट के रूप में उपयोग कर सकता हूं:

SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
  2  /

COLUMN_VALUE
------------
       20000
      240004
      375000
      255000

SQL>

इसका मतलब है कि मैं आपके नंबरों की स्ट्रिंग को एक टेबल में बदल सकता हूं, जिसमें मैं एक क्वेरी में शामिल हो सकता हूं, जैसे:

SQL> select val
  2  from t23
  3       , ( select column_value as i_no
  4           from table (str_to_number_tokens('20000, 240004, 375000, 255000')) ) sq
  5  where t23.year = 2010
  6  and   sq.i_no between t23.r_min and t23.r_max
  7  order by t23.priority
  8  /

       VAL
----------
        82
        50
        52

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आपका Oracle ODBC ड्राइवर Oracle क्लाइंट को कैसे लोड करता है?

  2. Oracle PL/SQL डेवलपर का उपयोग करके परीक्षण डेटा जेनरेट करें

  3. उदाहरणों के साथ दैवज्ञ में स्वयं शामिल हों

  4. C# और ODP.NET से पैकेज में फ़ंक्शन को कॉल करने के लिए कोड

  5. हाइबरनेट के साथ Oracle दिनांक का उपयोग करते समय दिनांक/समय के लिए जावा प्रकार