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

Oracle SQL obteniendo la expresión regular del elemento n

Si sus valores delimitados son siempre alfanuméricos entre comas, entonces podría intentar:

SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, 7 )
  FROM dual;

Para obtener el séptimo valor (incluida la coma final). Si está vacío, solo obtiene la coma final (que puede eliminar fácilmente).

Obviamente, si desea un valor que no sea el séptimo, cambie el valor del cuarto parámetro a la enésima ocurrencia que desee, por ejemplo,

SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, <nth occurance> )
  FROM dual;

EDITAR:Como me encanta REGEX, aquí hay una solución que también elimina la coma final

SELECT REPLACE(
          REGEXP_SUBSTR(<delimied_string>, '[[:alnum:]]{0,},', 1, <nth>), 
          ','
       )
  FROM dual;

Espero que ayude