Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SQL erhält das n-te Element Regexp

Wenn Ihre getrennten Werte immer alphanumerisch zwischen den Kommas stehen, könnten Sie Folgendes versuchen:

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

So erhalten Sie den siebten Wert (einschließlich des abschließenden Kommas). Wenn es leer ist, erhalten Sie nur das abschließende Komma (das Sie leicht entfernen können).

Wenn Sie einen anderen Wert als den siebten wünschen, ändern Sie natürlich den vierten Parameterwert in das gewünschte n-te Vorkommen, z. B.

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

BEARBEITEN:Da ich REGEX liebe, ist hier eine Lösung, die auch das nachgestellte Komma entfernt

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

hoffe es hilft