sql >> Database teknologi >  >> RDS >> Oracle

Hvordan vælger man understreng i oracle?

Jeg ville bruge REGEXP_SUBSTR (dokumentation ), med rigtige regulære udtryk. For eksempel:

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

Selvfølgelig hvis du gemmer Chapter xx Unit yy Sect zz strenge i tabel, så bruger du blot denne form for forespørgsel til at få flere resultater:

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

Du kan erstatte \d med [0-9] eller [[:digit:]]

SQLfiddle



  1. MySQL-serveren er forsvundet med Ruby on Rails

  2. MySQL arbejder med 127.0.0.1, men arbejder ikke med localhost?

  3. Udførelse af dataændringsrevision ved hjælp af tidsmæssig tabel

  4. 2 måder at returnere Unix-tidsstemplet i SQLite