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

Oracle SQL henter det n'te element regexp

Hvis dine afgrænsede værdier altid er alfanumeriske mellem kommaerne, kan du prøve:

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

For at få den syvende værdi (inklusive det efterfølgende komma). Hvis den er tom får du bare det efterfølgende komma (som du nemt kan fjerne).

Det er klart, hvis du ønsker en anden værdi end den syvende, skal du ændre den fjerde parameterværdi til den n'te forekomst, du ønsker, f.eks.

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

EDIT:Da jeg elsker REGEX, er her en løsning, der også fjerner det efterfølgende komma

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

håber det hjælper



  1. Find alle match i en varchar2()

  2. MariaDB Advarsel:'[email beskyttet]' har begge ... Adgangskoden vil blive ignoreret

  3. Alle nyttige 11g Dynamic Performance Views

  4. PostgreSQL \lo_import og hvordan får man den resulterende OID ind i en UPDATE kommando?