select substr(help, 1, instr(help,' ') - 1)
from ( select 'hello my name is...' as help
from dual )
instr(help,' ')
आपके द्वारा खोजी जा रही स्ट्रिंग सहित, पहले तर्क में दूसरे तर्क की पहली घटना की स्थितिगत अनुक्रमणिका देता है। यानी ' '
. की पहली घटना स्ट्रिंग में 'hello my name is...'
प्लस अंतरिक्ष।
substr(help, 1, instr(help,' ') - 1)
फिर इनपुट स्ट्रिंग को पहले अक्षर से instr(...
. में दर्शाए गए इंडेक्स में ले जाता है . मैं फिर एक को हटा देता हूं ताकि जगह शामिल न हो..
नौवीं घटना के लिए बस इसे थोड़ा बदल दें:
instr(help,' ',1,n)
नवां है ' '
. की घटना पहले चरित्र से। फिर आपको अगले इंडेक्स instr(help,' ',1,n + 1)
का पोजिशनल इंडेक्स ढूंढना होगा। , अंत में उनके बीच के अंतर पर काम करें ताकि आप जान सकें कि आपके substr(...
में कितनी दूर जाना है . जैसा कि आप nवें . की तलाश कर रहे हैं , जब n क्या यह 1 टूट जाता है और आपको इससे निपटना होगा, जैसे:
select substr( help
, decode( n
, 1, 1
, instr(help, ' ', 1, n - 1) + 1
)
, decode( &1
, 1, instr(help, ' ', 1, n ) - 1
, instr(help, ' ', 1, n) - instr(help, ' ', 1, n - 1) - 1
)
)
from ( select 'hello my name is...' as help
from dual )
यह n . पर भी टूट जाएगा . जैसा कि आप देख सकते हैं कि यह हास्यास्पद हो रहा है इसलिए आप रेगुलर एक्सप्रेशन
select regexp_substr(help, '[^[:space:]]+', 1, n )
from ( select 'hello my name is...' as help
from dual )