Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

output yang memiliki huruf pertama dan terakhir sebagai vokal (a,e,i,o,u)

Dengan asumsi semua nama kota semua huruf kecil, Anda bisa melakukan sesuatu seperti ini:

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) mengambil substring dari city mulai dari posisi 1 dan panjang 1 (artinya, hanya huruf pertama). substr(city, -1, 1) sangat mirip, hanya posisinya yang berbeda:-1 berarti huruf pertama dari akhir string - jadi ini akan memberi Anda huruf terakhir dari nama kota.

Jika city mungkin memiliki huruf besar dan kecil, di WHERE klausa gunakan lower(city) bukannya city .

EDIT :Dengan permintaan populer, berikut adalah bagaimana hal yang sama dapat dilakukan dengan ekspresi reguler. Tidak ada gunanya menggunakan pendekatan ekspresi reguler di sini; fungsi string standar (seperti SUBSTR) hampir pasti jauh lebih cepat daripada apa pun berdasarkan ekspresi reguler.

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

(a|e|i|o|u) berarti tepat salah satu dari karakter tersebut. ^ berarti jangkar di awal string, dan juga $ di ujung tali. Sebenarnya, ini membutuhkan nama kota setidaknya dua huruf; jika nama kota satu huruf memungkinkan, ini dapat dimodifikasi dengan mudah. (Pendekatan SUBSTR tidak memerlukan perubahan.)

Argumen terakhir, 'i' , membuat pencocokan huruf besar-kecil dengan regexp tidak peka (untuk berjaga-jaga jika diperlukan).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan hasil dari kueri SQL di Oracle

  2. Apa yang setara dengan Oracle dari SET NOCOUNT ON SQL Server?

  3. Hitung jarak antara dua titik panjang lat di Oracle

  4. Oracle:Bagaimana cara memanggil prosedur yang kelebihan beban?

  5. manajer sesi/entitas ditutup