sql >> Database teknologi >  >> RDS >> Oracle

Regex fanger de første ord før tegn efterfølgende - orakel

Du kan bruge

SELECT
  TRIM(',' FROM REGEXP_REPLACE('TType=SEND|Status=OK|URL=min://j?_a=3&ver=1.1|day=3',
                '=[^|]+($|\|)', ',')) "TType"    
  FROM DUAL

REGEXP_REPLACE vil finde og erstatte med et komma alle forekomster af en =[^|]+($|\|) mønster, der matcher

  • = - en = char
  • [^|]+ - et eller flere tegn bortset fra |
  • ($|\|) - enten ende af streng eller | .

Se en online demo .



  1. Rails hvor klausuler, når noget er gemt som array

  2. Standardadgangskode for min bruger i postgresql

  3. SQL 2 tæller med forskelligt filter

  4. rekursiv selvforespørgsel