मान लें कि सभी शहर के नाम सभी लोअरकेस अक्षर हैं, तो आप ऐसा कुछ कर सकते हैं:
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)
city
. का सबस्ट्रिंग लेता है स्थिति 1 और लंबाई 1 से शुरू (अर्थात्, केवल पहला अक्षर)। substr(city, -1, 1)
बहुत समान है, बस स्थिति अलग है:-1
मतलब अंत . से पहला अक्षर स्ट्रिंग का - तो यह आपको शहर के नाम का अंतिम अक्षर देगा।
अगर city
WHERE
. में अपर और लोअर केस लेटर दोनों हो सकते हैं क्लॉज उपयोग lower(city)
city
. के बजाय ।
संपादित करें :लोकप्रिय अनुरोध द्वारा, यहां बताया गया है कि नियमित अभिव्यक्तियों के साथ ऐसा कैसे किया जा सकता है। हालांकि यहां नियमित अभिव्यक्ति दृष्टिकोण का उपयोग करने का कोई मतलब नहीं है; मानक स्ट्रिंग फ़ंक्शन (जैसे SUBSTR) नियमित अभिव्यक्तियों के आधार पर किसी भी चीज़ की तुलना में बहुत तेज़ होने के लिए लगभग निश्चित हैं।
....
where regexp_like(city, '^(a|e|i|o|u).*(a|e|i|o|u)$', 'i')
(a|e|i|o|u)
मतलब बिल्कुल उन पात्रों में से एक। ^
का अर्थ है स्ट्रिंग की शुरुआत में एंकर, और इसी तरह $
स्ट्रिंग के अंत में। कड़ाई से बोलते हुए, इसके लिए शहर का नाम कम से कम दो अक्षर लंबा होना चाहिए; यदि एक-अक्षर वाले शहर के नाम संभव हैं, तो इसे आसानी से संशोधित किया जा सकता है। (SUBSTR दृष्टिकोण में किसी परिवर्तन की आवश्यकता नहीं होगी।)
अंतिम तर्क, 'i'
, रेगेक्सपी मिलान केस को असंवेदनशील बनाता है (बस जरूरत पड़ने पर)।