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

Bagaimana cara membagi kolom varchar sebagai beberapa nilai dalam SQL?

Bungkus nilai dalam pembatas yang Anda gunakan dalam daftar yang dibatasi dan kemudian periksa apakah itu adalah sub-string dari daftar yang dibatasi (juga dengan pembatas yang membungkusnya):

SELECT r.Value
FROM   AD_Ref_List r
       INNER JOIN xx_insert x
       ON ( ',' || x.XX_DocAction_Next || ',' LIKE '%,' || r.value || ',%' )
WHERE  r.AD_Reference_ID = 1000448
AND    x.xx_insert_id    = 1000283;

saya harus menyimpan logika di whereClause

Sungguh, jangan. Permintaan di atas akan jauh lebih efisien.

Tetapi jika Anda harus melakukannya:

SELECT Value
FROM   AD_Ref_List
WHERE  AD_Reference_ID = 1000448
AND    value IN (
  SELECT REGEXP_SUBSTR( XX_DocAction_Next, '[^,]+', 1, LEVEL )
  FROM   xx_insert
  WHERE  xx_insert_id    = 1000283
  CONNECT BY LEVEL <= REGEXP_COUNT( XX_DocAction_Next, '[^,]+' )
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendaftar Semua Tampilan di Database Oracle

  2. Penyetelan Kinerja PL/SQL untuk Kueri Wildcard LIKE '%...%'

  3. PL/SQL:Kesalahan PLS-00306:nomor atau jenis argumen yang salah saat dipanggil untuk dipicu untuk tabel angka

  4. Bagaimana cara mendapatkan konten tekstual dari BLOB di Oracle SQL

  5. Cloud Native dan DevSecOps dalam Skala Besar dengan Capgemini Agile Innovation Platform dan Oracle Cloud