sql >> Databasteknik >  >> RDS >> Oracle

Hur väljer man understräng i Oracle?

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:]]

SQLfiddle



  1. Få MS Office 2013 (32 bitars) Excel och Access att ansluta till Oracle-databas när både 32 och 64 klienter är installerade

  2. Sök i mysql-tabellen från sista raden

  3. Subtrahera månad och dag mysql

  4. Hämta första N-posterna i en JSON-array med en Postgresql-fråga