sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo seleccionar una subcadena en Oracle?

Usaría REGEXP_SUBSTR (documentación ), con expresiones regulares derechas. Por ejemplo:

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

Por supuesto, si almacena Chapter xx Unit yy Sect zz cadenas en la tabla, entonces simplemente usa este tipo de consulta para obtener múltiples resultados:

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

Puede reemplazar \d con [0-9] o [[:digit:]]

SQLfiddle