Oracle
 sql >> Baza danych >  >> RDS >> Oracle

wyjście, które ma pierwszą i ostatnią literę jako samogłoskę(a,e,i,o,u)

Zakładając, że wszystkie nazwy miast są małymi literami, możesz zrobić coś takiego:

select city
from   station
where  substr(city,  1, 1) in ('a', 'e', 'i', 'o', 'u')
  and  substr(city, -1, 1) in ('a', 'e', 'i', 'o', 'u')

substr(city, 1, 1) pobiera podciąg city zaczynając od pozycji 1 i długości 1 (czyli tylko pierwszej litery). substr(city, -1, 1) jest bardzo podobny, tylko pozycja jest inna:-1 oznacza pierwszą literę od koniec ciągu - więc to da ci ostatnią literę nazwy miasta.

Jeśli city może mieć zarówno duże, jak i małe litery, w WHERE klauzula użyj lower(city) zamiast city .

EDYTUJ :Na popularne żądanie, oto jak to samo można zrobić z wyrażeniami regularnymi. Nie ma jednak sensu używać tutaj podejścia opartego na wyrażeniach regularnych; standardowe funkcje łańcuchowe (takie jak SUBSTR) są prawie pewne, że są znacznie szybsze niż cokolwiek oparte na wyrażeniach regularnych.

....
where regexp_like(city, '^(a|e|i|o|u).*(a|e|i|o|u)$', 'i')

(a|e|i|o|u) oznacza dokładnie jedną z tych postaci. ^ oznacza kotwicę na początku ciągu i podobnie $ na końcu ciągu. Ściśle mówiąc, wymaga to, aby nazwa miasta składała się z co najmniej dwóch liter; jeśli możliwe są jednoliterowe nazwy miast, można je łatwo zmienić. (Podejście SUBSTR nie wymagałoby żadnych zmian.)

Ostatni argument, 'i' , sprawia, że ​​dopasowujące wyrażenie regularne nie uwzględnia wielkości liter (tylko w przypadku, gdy jest to konieczne).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z usługi internetowej i wstawianie CLOB przy użyciu Node.js do tabeli bazy danych Oracle

  2. NUMTODSINTERVAL w PostgreSQL

  3. Funkcja TAN() w Oracle

  4. Zaktualizuj znacznik czasu w powiązanym wierszu odniesienia podczas aktualizacji lub wstawiania

  5. Czy musimy określić not null dla klucza podstawowego? Oracle/SQL