sql >> Database >  >> RDS >> Oracle

REGEXP_REPLACE - verwijder komma's ALLEEN uit tekenreeks als deze is ingesloten tussen ()'s

Dit werkt voor een constante lengte van argumenten met tussen haakjes.

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

update geïnspireerd door @Kobi's opmerking:
deze reguliere expressie verwijdert de 1e, optionele 2e en optionele 3e , tussen ()
het kan worden verlengd tot 9 (ik heb een boek met vermelding van \1 ... \500 zou mogelijk moeten zijn, maar alleen \1 ... \9 werkte)

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


  1. MySQL-opdrachtregelopmaak met UTF8

  2. Is er een verschijnt in alle (set divisie?) operatie ingebouwd in MySQL?

  3. Wat betekent %Type in Oracle sql?

  4. Canonical Function EntityFunctions.TruncateTime bestaat niet in MYSQL