sql >> Databáze >  >> RDS >> Oracle

Extrahujte n-tý podřetězec

Čtvrtý parametr REGEX_SUBSTR se nazývá occurence . Musíte pouze nastavit výskyt, který chcete vidět pro každý sloupec:

CREATE TABLE T (id varchar2(30));
INSERT INTO T VALUES ('0234-RDRT-RS111-M-EU');
INSERT INTO T VALUES ('0234-RDRT-RSD123-M-EU');

SELECT regexp_substr(id,'[^-]+',1,1) as col1,
       regexp_substr(id,'[^-]+',1,2) as col2,
       regexp_substr(id,'[^-]+',1,3) as col3,
       regexp_substr(id,'[^-]+',1,4) as col4,
       regexp_substr(id,'[^-]+',1,5) as col5
  FROM t;

COL1    COL2    COL3    COL4    COL5
0234    RDRT    RS111   M   EU
0234    RDRT    RSD123  M   EU

Viz REGEX_SUBSTR Další podrobnosti naleznete v dokumentaci Oracle.



  1. Výpočet SQL Server ROW_NUMBER() OVER() pro odvozenou tabulku

  2. Mohu seskupit podle v dotazu SQL s funkcí okna?

  3. Proč SQL Server ignoruje vaule ve zřetězení řetězců, když je zadána klauzule ORDER BY

  4. Jak získat informace o chybě kompilace v Oracle/TOAD