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

टेक्स्ट चयन के आधार पर फ़ील्ड के मान जोड़ें Oracle SQL

स्ट्रिंग तुलना के लिए सही ऑपरेटर LIKE है। ध्यान दें कि यह CLOB के लिए काम करता है, न कि केवल VARCHAR2 के लिए।

नीचे दिए गए उदाहरण में मैं एक विशेष विधि का उपयोग करके मक्खी पर इनपुट स्ट्रिंग्स की तालिका बनाता हूं। और भी कई तरीके हैं - जो भी आप परिचित हैं उसका उपयोग करें।

with
     a_x ( a, b ) as (
       select to_clob('atveroeosipsumloremipsumdolor'), 1 from dual union all
       select to_clob('stetclitakasdtest')            , 2 from dual union all
       select to_clob('noseatakimataatveroeosipsum')  , 3 from dual union all
       select to_clob('loremipsumdolor')              , 4 from dual union all
       select to_clob('consetetursadipscingelitr')    , 5 from dual
     ),
     input_strings ( str ) as (
       select column_value
       from   table ( sys.odcivarchar2list ( 'atveroeosipsum', 'test', 'stetclitakasd',
                                             'noseatakimata', 'loremipsumdolor',
                                             'consetetursadipscingelitr'
                                           )
                    )                    
     )
select   t2.str, listagg(t1.b, ',') within group (order by t1.b) as ids
from     a_x t1 
         join input_strings t2 on t1.a like '%' || t2.str || '%'
group by t2.str
;

STR                        IDS
-------------------------  ---
atveroeosipsum             1,3
consetetursadipscingelitr  5
loremipsumdolor            1,4
noseatakimata              3
stetclitakasd              2
test                       2



  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

  2. एक लंबी रॉ की लंबाई प्राप्त करें

  3. क्या एक सबक्वेरी से कई मान प्राप्त करना संभव है?

  4. Oracle SQL में 1970 UTC के बाद से मिली टाइमस्टैम्प कैसे प्राप्त करें?

  5. Oracle DB उपयोगकर्ता उपनाम