sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL:Returnera första raden i strängen med regexp_substr

Parados reguljära uttryck matchar allt som inte är ett komma flera gånger följt av en vagnretur. Det betyder att det inte fungerar för en radmatning eller om det finns ett kommatecken i texten.

Oracle stöder flerradsuttryck med m matchningsparameter . När du använder det här läget, $ matchar slutet av varje rad såväl som slutet av strängen. Du kan använda detta för att helt enkelt uttrycket massivt till:

regexp_substr(str, '.*$', 1, 1, 'm')

Det vill säga matcha den första förekomsten (den första raden) av strängen som matchar någonting, följt av slutet av strängen, räknat från det första tecknet.

Som ett exempel:

with strings as ( 
 select 'hi
         hi again' as str
   from dual
  union all
 select 'bye
         and again'
   from dual
        )
 select regexp_substr(str, '.*$', 1, 1, 'm')
   from strings


  1. MySQL ODBC misslyckas i C# .NET-projekt men inte runtime-kompilerad kod

  2. Hur man hittar en tabell med en specifik kolumn i postgresql

  3. Vad är skillnaden mellan AS och IS i en Oracle-lagrad procedur?

  4. Valfri månad eller dag i MySQL-datumfältet från PHP