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

ORACLE - regexp_substr untuk mengembalikan nilai nol

@Gary_W telah menulis tentang masalah dengan menggunakan pola regex itu untuk membagi string, justru karena cara memperlakukan tag kosong. (Dan sedang menjalankan misi... )

Pendekatan alternatif di pos itu juga berfungsi di sini, dengan pembatas pipa lolos:

with t (str) as (
  select '1|CAT|DOG' from dual
  union all select '3|HARRY|GOAT|STACK' from dual
  union all select '6||LION|TIGER' from dual
)
select str, regexp_substr(str, '(.*?)(\||$)', 1, 2, null, 1) from t;

STR                REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG          CAT               
3|HARRY|GOAT|STACK HARRY             
6||LION|TIGER                        

Demikian pula untuk elemen ketiga:

select str, regexp_substr(str, '(.*?)(\||$)', 1, 3, null, 1) from t;

STR                REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG          DOG               
3|HARRY|GOAT|STACK GOAT              
6||LION|TIGER      LION              

Dan yang keempat:

select str, regexp_substr(str, '(.*?)(\||$)', 1, 4, null, 1) from t;

STR                REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG                            
3|HARRY|GOAT|STACK STACK             
6||LION|TIGER      TIGER             


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Dinamis - Periksa sintaks dan semantik

  2. plsql - cara mengembalikan array asosiatif ke java

  3. cara menggunakan COALESCE di oracle untuk menggabungkan data dari dua baris

  4. Cara Memformat Angka sebagai Mata Uang di Oracle

  5. Butuh bantuan untuk menyimpan nilai dari tiga kolom