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

regexp_substr melompati posisi kosong

Regexp_substr bekerja dengan cara ini:

Jika kemunculan lebih besar dari 1, maka basis data mencari kemunculan kedua yang dimulai dengan karakter pertama setelah kemunculan pola pertama , Dan seterusnya. Perilaku ini berbeda dengan fungsi SUBSTR, yang memulai pencarian kemunculan kedua pada karakter kedua dari kemunculan pertama.

Jadi pola [^|] akan mencari pipa NON, artinya akan melewati pipa berurutan ("||") mencari karakter non-pipa.

Anda dapat mencoba:

select trim(regexp_substr(replace('A|test||string', '|', '| '), '[^|]+', 1, 4)) from dual;

Ini akan menggantikan "|" dengan "| " dan memungkinkan Anda untuk mencocokkan berdasarkan pola [^|]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara 'YYYY' dan 'RRRR' di Oracle SQL

  2. Fungsi SYSTIMESTAMP di Oracle

  3. Membangun Grafik Ketergantungan Tabel Dengan Query Rekursif

  4. Pivot Oracle dengan subquery

  5. Kelompokkan berdasarkan nilai-nilai yang berurutan