कई RDBMS में एक INSTR()
होता है फ़ंक्शन जो हमें एक स्ट्रिंग के भीतर एक सबस्ट्रिंग खोजने में सक्षम बनाता है। कुछ (जैसे MySQL और MariaDB) में एक LOCATE()
भी होता है फ़ंक्शन और एक POSITION()
फ़ंक्शन (पोस्टग्रेएसक्यूएल द्वारा समर्थित), जो एक समान काम करते हैं।
SQL सर्वर में INSTR()
नहीं है समारोह। न ही इसमें LOCATE()
है या POSITION()
समारोह। लेकिन इसमें CHARINDEX()
जरूर है फ़ंक्शन जो समान कार्य करता है।
SQL सर्वर में PATINDEX()
भी होता है फ़ंक्शन, जो CHARINDEX()
. के समान कार्य करता है ।
द CHARINDEX()
समारोह
यहां CHARINDEX()
का एक उदाहरण दिया गया है समारोह:
SELECT CHARINDEX('news', 'No news is good news');
परिणाम:
4
फ़ंक्शन तीसरे तर्क को स्वीकार करता है जो हमें यह निर्दिष्ट करने की अनुमति देता है कि खोज कहां से शुरू करें:
SELECT CHARINDEX('news', 'No news is good news', 5);
परिणाम:
17
इस उदाहरण में, हमने स्थिति 5 पर खोज शुरू की, जो कि news
की पहली घटना की शुरुआत के बाद थी। , इसलिए इसने दूसरी घटना की स्थिति लौटा दी।
PATINDEX()
समारोह
PATINDEX()
फ़ंक्शन CHARINDEX()
. के समान है , सिवाय इसके कि यह हमें एक विशिष्ट स्ट्रिंग के बजाय एक पैटर्न की खोज करने की अनुमति देता है।
मेरा मतलब समझाने के लिए यहां एक उदाहरण दिया गया है:
SELECT PATINDEX('%ew%', 'No news is good news');
परिणाम:
5
अगर मैं वाइल्डकार्ड वर्ण हटा दूं तो क्या होगा:
SELECT PATINDEX('ew', 'No news is good news');
परिणाम:
0
देखें PATINDEX()
बनाम CHARINDEX()
इन दो कार्यों के बीच अंतर के बारे में अधिक जानकारी के लिए।