sql >> Databáze >  >> RDS >> Oracle

REGEXP_REPLACE - odstranit čárky z řetězce POUZE pokud jsou uzavřeny v ()'s

To bude fungovat pro konstantní délku argumentů s v závorkách.

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

aktualizace inspirovaná komentářem @Kobi:
tento regulární výraz odstraňuje 1., volitelný 2. a volitelný 3. , mezi ()
lze prodloužit až na 9 (mám knihu uvedení \1 ... \500 by mělo být možné, ale pouze \1 ... \9 fungovalo)

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


  1. NodeJS MSSQL WHERE IN Připravený příkaz SQL

  2. Syntaxe SQL pro if existuje

  3. Výčty Java, JPA a Výčty Postgres – Jak zajistím, aby spolupracovaly?

  4. překročen maximální počet rekurzivních úrovní SQL (50).