sql >> Databasteknik >  >> RDS >> Oracle

REGEXP_REPLACE - ta bort kommatecken från strängen ENDAST om de är inneslutna i ()

Detta kommer att fungera för en konstant längd av argument med inom parentes.

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

uppdatering inspirerad av @Kobis kommentar:
det här reguljära uttrycket tar bort 1:a, valfria 2:a och valfria 3:e , mellan ()
den kan förlängas upp till 9 (jag har en bok att ange \1 ... \500 borde vara möjligt men bara \1 ... \9 fungerade)

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


  1. Ta bort - jag kan inte ange måltabell?

  2. Gruppera efter datum och visa i datum och tid i sql

  3. Infoga datamängden i Oracle Table

  4. Oracle Infoga Välj med beställning efter