sql >> Database >  >> RDS >> Oracle

Oracle SQL krijgt het n-de element regexp

Als uw gescheiden waarden altijd alfanumeriek zijn tussen de komma's, kunt u het volgende proberen:

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

Om de zevende waarde te krijgen (inclusief de volgkomma). Als het leeg is, krijg je alleen de afsluitende komma (die je gemakkelijk kunt verwijderen).

Als u een andere waarde dan de zevende wilt, moet u uiteraard de vierde parameterwaarde wijzigen in de n-de keer dat u wilt, bijvoorbeeld

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

EDIT:Omdat ik dol ben op REGEX, is hier een oplossing die ook de volgkomma verwijdert

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

hoop dat het helpt



  1. Behoud en toon tekst precies zoals het is getypt en ingediend

  2. login met gebruikersnaam of e-mailadres in php

  3. Hoe wxImage op te slaan in de database, met behulp van C++?

  4. Hoe de huidige taal in SQL Server (T-SQL) in te stellen