Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQL obtient le nième élément regexp

Si vos valeurs délimitées sont toujours alphanumériques entre les virgules, vous pouvez essayer :

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

Pour obtenir la septième valeur (y compris la virgule finale). S'il est vide, vous obtenez simplement la virgule finale (que vous pouvez facilement supprimer).

Évidemment, si vous voulez une valeur autre que la septième, changez la valeur du quatrième paramètre en la nième occurrence que vous voulez, par exemple

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

EDIT :Comme j'adore REGEX, voici une solution qui supprime également la virgule de fin

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

j'espère que ça aide