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

Menggabungkan nilai bidang tergantung pada pemilihan teks Oracle SQL

Operator yang benar untuk perbandingan string adalah LIKE. Perhatikan bahwa ini berfungsi untuk CLOB, bukan hanya untuk VARCHAR2.

Pada contoh di bawah ini saya membuat tabel string input dengan cepat menggunakan satu metode tertentu. Ada beberapa metode lain - gunakan mana saja yang Anda kenal.

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. Kesalahan dalam prosedur Oracle PL/SQL

  2. Apa perbedaan antara akun Oracle SYS dan SYSTEM?

  3. Cara memanggil prosedur tersimpan di JDBC

  4. Temukan kebocoran Koneksi di aplikasi Java

  5. Cara membuat MERGE bisa serial