Jag skulle använda REGEXP_SUBSTR (dokumentation
), med rätt reguljära uttryck. Till exempel:
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
Naturligtvis om du lagrar Chapter xx Unit yy Sect zz strängar i tabell, då använder du helt enkelt den här typen av fråga för att få flera resultat:
select regexp_substr(info_column, 'Chapter \d*') from mytable;
Du kan ersätta \d med [0-9] eller [[:digit:]]