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

REGEXP_REPLACE - CHỈ xóa dấu phẩy khỏi chuỗi nếu được đặt trong () 's

Điều này sẽ hoạt động đối với độ dài không đổi của các đối số có trong dấu ngoặc.

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

cập nhật lấy cảm hứng từ nhận xét của @ Kobi:
biểu thức chính quy này xóa , giữa ()
nó có thể được mở rộng lên đến 9 (Tôi đã có một sách nêu rõ \ 1 ... \ 500 nên khả thi nhưng chỉ \ 1 ... \ 9 hoạt động)

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. Nhiều hơn một bảng được tìm thấy trong không gian tên (,) - SchemaExtractionException

  2. Oracle10 và JDBC:Làm cách nào để CHAR bỏ qua dấu cách ở cuối khi so sánh?

  3. cách thay thế nhiều chuỗi với nhau trong Oracle

  4. làm việc với Fluent NHibernate và id hướng dẫn

  5. Cách hiển thị lỗi trong sqlplus