Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como selecionar substring no oracle?


Eu usaria REGEXP_SUBSTR (documentação ), com expressões regulares à direita. Por exemplo:
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

Claro que se você armazenar Chapter xx Unit yy Sect zz strings na tabela, então você simplesmente usa esse tipo de consulta para obter vários resultados:
select regexp_substr(info_column, 'Chapter \d*') from mytable;

Você pode substituir \d com [0-9] ou [[:digit:]]

SQLfiddle