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

REGEXP_REPLACE - hapus koma dari string HANYA jika diapit dalam ()'s

Ini akan bekerja untuk panjang argumen yang konstan dengan tanda kurung.

REGEXP_REPLACE(t.col1, '(\(.*?),(.*?),(.*?\))', '\1\2\3') new_col

pembaruan yang terinspirasi oleh komentar @ Kobi:
ekspresi reguler ini menghapus , antara ()
dapat diperpanjang hingga 9 (Saya memiliki buku menyatakan \1 ... \500 seharusnya mungkin tetapi hanya \1 ... \9 yang berhasil)

REGEXP_REPLACE(t.col1, '\(([^,]*),([^,]*),?([^,]*),?([^,]*)\)', '(\1\2\3\4)') new_col


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. if-elseif-else 'kondisi' di Oracle SQL

  2. Fungsi Oracle REPLACE() tidak menangani carriage-returns &line-feeds

  3. urutan tanggal oracle?

  4. Aksen dan COLLATE yang tidak peka huruf besar/kecil setara di Oracle

  5. Mendapatkan ORA-02391:batas SESSIONS_PER_USER