Oracle
 sql >> база данни >  >> RDS >> Oracle

REGEXP_REPLACE - премахване на запетаи от низ САМО ако е ограден в ()

Това ще работи за постоянна дължина на аргументите в скобите.

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

актуализация, вдъхновена от коментара на @Kobi:
този регулярен израз премахва 1-ви, незадължителен 2-ри и незадължителен 3-ти , между ()
може да се удължи до 9 (имам книга заявявайки \1 ... \500 трябва да е възможно, но само \1 ... \9 работи)

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. Не може да се включи в разпределена транзакция с NHibernate

  2. Намерете външен ключ, съответстващ на множество стойности на ред

  3. Oracle Long Raw проблем

  4. Dynamic Oracle Pivot_In_Clause

  5. Как да използвам глобална временна таблица в процедурата на Oracle?