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

Jak vybrat podřetězec v oracle?

Použil bych REGEXP_SUBSTR (dokumentace ), se správnými regulárními výrazy. Například:

select regexp_substr('Chapter 18 Unit 10 Sect 16', 'Chapter \d*') from dual;
  --Will return: Chapter 18
select regexp_substr('Chapter 18 Unit 10 Sect 16', 'Unit \d*') from dual;
  --Will return: Unit 10
select regexp_substr('Chapter 18 Unit 10 Sect 16', 'Sect \d*') from dual;
  --Will return: Sect 16

Samozřejmě pokud uložíte Chapter xx Unit yy Sect zz strings v tabulce, pak jednoduše použijete tento druh dotazu k získání více výsledků:

select regexp_substr(info_column, 'Chapter \d*') from mytable;

Můžete nahradit \d s [0-9] nebo [[:digit:]]

SQLfiddle



  1. org.postgresql.util.PSQLException:Index sloupce je mimo rozsah:3, počet sloupců:2

  2. Jak zjistíte velikost disku tabulky Postgres / PostgreSQL a její indexy

  3. Vzdálené připojení PostgreSQL s pgAdmin

  4. Jak zkombinovat dva aktualizační dotazy s různými podmínkami kde