sql >> Database >  >> RDS >> Oracle

Hoe sub-tekenreeks in orakel te selecteren?

Ik zou REGEXP_SUBSTR . gebruiken (documentatie ), met de juiste reguliere expressies. Bijvoorbeeld:

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

Natuurlijk als je Chapter xx Unit yy Sect zz . bewaart strings in de tabel, dan gebruik je dit soort zoekopdracht om meerdere resultaten te krijgen:

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

U kunt \d . vervangen met [0-9] of [[:digit:]]

SQLfiddle



  1. MySQL:ik moet elke dag van 1 tot maximaal n berichten van elke gebruiker weergeven

  2. Verschillende manieren om SQL Server AlwaysOn-beschikbaarheidsgroepen te bewaken

  3. hibernate hql - retourneer bijgewerkte rijen-ID-lijst na het uitvoeren van de update-query

  4. De grootte van een database controleren in MySQL