sql >> Databasteknik >  >> RDS >> Oracle

Reguljärt uttryck för att returnera nummer efter matchad sträng i oracle

REGEX_SUBSTR tillåter inte en look-behind som (?<=id=\s*)\d+ så jag misstänker att du behöver göra detta i två operationer. Skaffa först id=4020 , ta sedan bort id= .

Ett möjligt sätt att göra det skulle vara:

REGEXP_SUBSTR(REGEXP_SUBSTR(a, 'id=\s*\d+'), '\d+')

SQLFiddle



  1. Effektivare fråga än NOT IN (kapslade val)

  2. Vad är OracleType för ROWNUM

  3. SQL Server Resumable Index:Är det bra för dig?

  4. Hur skriver jag en anslutning med dessa ovanliga matchningskriterier?