sql >> Databasteknik >  >> RDS >> Oracle

Regex fångar de första orden före tecken därefter - orakel

Du kan använda

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

REGEXP_REPLACE kommer att hitta och ersätta med kommatecken alla förekomster av en =[^|]+($|\|) mönster som matchar

  • = - en = röding
  • [^|]+ - ett eller flera tecken förutom |
  • ($|\|) - antingen slutet av strängen eller | .

Se en demo online .



  1. Ändra en SQL-kolumntitel via fråga

  2. Dynamisk ORDER BY och ASC / DESC i en plpgsql-funktion

  3. Använda Substr med Instr för att extrahera en sträng i Oracle

  4. Robust metod för att skapa SQL-frågor programmatiskt