sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL hämtar det n:te elementet regexp

Om dina avgränsade värden alltid är alfanumeriska mellan kommatecken kan du prova:

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

För att få det sjunde värdet (inklusive det avslutande kommatecken). Om den är tom får du bara det avslutande kommatecken (som du enkelt kan ta bort).

Självklart, om du vill ha ett annat värde än det sjunde, ändra då det fjärde parametervärdet till vilken n:te förekomst du vill, t.ex.

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

EDIT:Eftersom jag älskar REGEX är här en lösning som också tar bort det avslutande kommatecken

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

hoppas det hjälper



  1. Hur kan jag använda cPanel för att ladda upp php-filer och databas?

  2. Oracle till PostgreSQL:Reasons to Migrate

  3. SQLAlchemy:Förlorade anslutningen till MySQL-servern under förfrågan

  4. Java SQL-undantag:Stängd resultatuppsättning:nästa även om varken anslutning eller resultatuppsättning stängs