sql >> Base de Datos >  >> RDS >> Oracle

Oracle SQL:devuelva la primera línea de cadena usando regexp_substr

La expresión regular de Parado coincide con todo lo que no es una coma varias veces seguido de un retorno de carro. Esto significa que no funcionará para un salto de línea o si hay una coma en el texto.

Oracle admite expresiones de varias líneas utilizando m parámetro de coincidencia . Al usar este modo, $ coincide con el final de cada línea, así como con el final de la cadena. Puede usar esto para simplemente la expresión de forma masiva para:

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

Es decir, coincide con la primera aparición (la primera línea) de la cadena que coincide con cualquier cosa, seguida del final de la cadena, contando desde el primer carácter.

Como ejemplo:

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