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

Oracle SQL क्वेरी में टेक्स्ट में संख्या मानों की एक श्रृंखला को कनवर्ट करें

यहाँ एक विकल्प है। कोड के भीतर टिप्पणियाँ पढ़ें। # 1 - 13 पंक्तियों में नमूना डेटा; क्वेरी लाइन #14 से शुरू होती है।

SQL> with
  2  expl (id, name) as
  3    (select 1, 'car' from dual union all
  4     select 2, 'bus' from dual union all
  5     select 3, 'BB'  from dual union all
  6     select 4, 'SB'  from dual union all
  7     select 5, 'Ba'  from dual union all
  8     select 6, 'PA'  from dual union all
  9     select 7, 'HB'  from dual union all
 10     select 8, 'G'   from dual
 11    ),
 12  temp (col) as
 13    (select '1,4,7,8' from dual),
 14  -- split COL to rows
 15  spl as
 16    (select regexp_substr(col, '[^,]+', 1, level) val,
 17            level lvl
 18     from temp
 19     connect by level <= regexp_count(col, ',') + 1
 20    )
 21  -- join SPL with EXPL; aggregate the result
 22  select listagg(e.name, ',') within group (order by s.lvl) result
 23  from expl e join spl s on s.val = e.id;

RESULT
--------------------------------------------------------------------------------
car,SB,HB,G

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. शुरुआत और अंत के साथ दो पीएलएसक्यूएल कथन, अलग-अलग ठीक चलते हैं लेकिन एक साथ नहीं?

  2. ओरेकल pl/sql में एक्सएमएल पार्सिंग

  3. पीएल/एसक्यूएल संग्रहीत फ़ंक्शन द्वारा एकाधिक पंक्ति कैसे वापस करें?

  4. चेक बाधा में केस स्टेटमेंट का उपयोग करना

  5. Oracle SQL स्क्रिप्ट में स्थिति आधारित स्पूल पीढ़ी