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

Oracle SQL:Returner første linje af streng ved hjælp af regexp_substr

Parados regulære udtryk matcher alt, der ikke er et komma flere gange efterfulgt af et vognretur. Det betyder, at det ikke vil fungere for et line-feed, eller hvis der er et komma i teksten.

Oracle understøtter multi-line udtryk ved hjælp af m match parameter . Når du bruger denne tilstand, $ matcher slutningen af ​​hver linje såvel som slutningen af ​​strengen. Du kan bruge dette til blot at udtrykke massivt til:

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

Det vil sige match den første forekomst (den første linje) af strengen, der matcher noget, efterfulgt af slutningen af ​​strengen, tællet fra det første tegn.

Som et eksempel:

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 Konverter streng til dato Beregn alder og rækkefølge efter alder

  2. mysqli forberedt sætning num_rows returnerer 0, mens forespørgslen returnerer større end 0

  3. Wordpress Fatal fejl:Ufanget fejl:Kald til udefineret funktion mysql_connect() i /wp-includes/wp-db.php:1570

  4. Hvorfor 'explain'-kommando giver forskellige resultater på samme SQL-sætning?