Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie wähle ich eine Teilzeichenfolge in Oracle aus?

Ich würde REGEXP_SUBSTR verwenden (Dokumentation ). ), mit richtigen regulären Ausdrücken. Zum Beispiel:

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

Natürlich, wenn Sie Chapter xx Unit yy Sect zz speichern Zeichenfolgen in der Tabelle, dann verwenden Sie einfach diese Art von Abfrage, um mehrere Ergebnisse zu erhalten:

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

Sie können \d ersetzen mit [0-9] oder [[:digit:]]

SQLfiddle