¿Cómo hallar patrones con expresiones regulares?

Tengo un campo en una base de datos tipo string. Este campo puede estar de dos formas, así:

  1. "ACTA N° M12345 "
  2. "ACTA N° 20020012345"

Una es excluyente de la otra, es decir, si hay un acta alfanumérica (M12345), NO estaría el acta numérica (20020012345) y viceversa . Quiero programar una expresión regular que me pueda servir para extraer ambos tipos de actas cuando se presente.

Tengo este ejemplo, pero en el acta alfanumérico, no me extrae la "M":

SELECT regexp_extract('ACTA N° M12345', 'ACTA\\D*N\\D*(M*[0-9]*)',1) AS acta

1 Respuesta

Respuesta
1

Yo la resolvería así, por supuesto pone los nombres de los campos correctamente:

select ifnull(replace(CampoActaAlfanumerica,"ACTA N° M",""),replace(CampoActaNumerica,"ACTA N° ","")) AS acta

Recién caigo que el campo es el mismo pero puede contener "ACTA N° MXXXXXXX" o "ACTA N°XXXXXXXX", proba de esta forma, recordá que donde dice 'ACTA N° M20020012345' va el nombre de tu campo y el from de tu tabla:

SELECT REPLACE
( d.c, 'M', '' ) AS Acta 
FROM
( SELECT REPLACE ( b.a, 'ACTA N°', '' ) c 
FROM 
( SELECT 'ACTA N° M20020012345' AS a ) AS b ) d

Si te es de ayuda recorda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas