Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Nối các giá trị của trường tùy thuộc vào lựa chọn văn bản Oracle SQL

Toán tử chính xác để so sánh chuỗi là LIKE. Lưu ý rằng nó hoạt động cho CLOB, không chỉ cho VARCHAR2.

Trong ví dụ dưới đây, tôi tạo bảng chuỗi nhập nhanh chóng bằng cách sử dụng một phương pháp cụ thể. Có một số phương pháp khác - sử dụng bất kỳ phương pháp nào bạn quen thuộc.

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. Cách xử lý MAX () của một bảng trống là 0 thay vì NULL

  2. CHỌN sử dụng Mệnh đề UNION

  3. SQL, trên dòng thác xóa và trên dòng thác cập nhật

  4. Có cách nào để hiển thị các cột động trong Oracle apex không

  5. Oracle:Có thể tạo Role trong Trigger không?