sql >> Database >  >> RDS >> Oracle

Oracle- Split string door komma's gescheiden (string bevat spaties en opeenvolgende komma's)

Probeer dit voor het ontleden van het lijstgedeelte. Het verwerkt NULLS:

SQL> select regexp_substr('12 3,456,,abc,def', '(.*?)(,|$)', 1, level, null, 1) SPLIT, level
    from dual
    connect by level <= regexp_count('12 3,456,,abc,def',',') + 1
    ORDER BY level;

SPLIT                  LEVEL
----------------- ----------
12 3                       1
456                        2
                           3
abc                        4
def                        5

SQL>

Helaas, wanneer u zoekt naar regex's voor parseerlijsten, zult u altijd dit formulier vinden dat GEEN nulls verwerkt en moet worden vermeden:'[^,]+' . Zie hier voor meer info:Splits door komma's gescheiden waarden naar kolommen in Oracle.



  1. Hoe krijg ik alleen numerieke kolomwaarden?

  2. SQLite-queryresultaten opmaken als een HTML-tabel

  3. Tel rijen per uur in SQL Server met volledige datum-tijdwaarde als resultaat

  4. I/O-prestaties analyseren voor SQL Server