SQL Server में Substring() का उपयोग: उदाहरण सहित कैसे करें
⚡ स्मार्ट सारांश
SQL सर्वर में SUBSTRING() का उपयोग करना उदाहरण के लिएtracयह किसी अक्षर, पाठ या बाइनरी अभिव्यक्ति का एक भाग होता है, जो चुने हुए प्रारंभिक स्थान से निश्चित संख्या में अक्षर लौटाता है, और सीमांकक-आधारित पार्सिंग के लिए CHARINDEX के साथ स्वाभाविक रूप से जुड़ता है।
सबस्ट्रिंग() क्या है?
SUBSTRING() एक फ़ंक्शन है एसक्यूएल यह फ़ंक्शन उपयोगकर्ता को आवश्यकतानुसार किसी भी दी गई स्ट्रिंग से एक सबस्ट्रिंग निकालने की सुविधा देता है। SUBSTRING() उदाहरणtracSUBSTRING() एक निर्दिष्ट लंबाई की स्ट्रिंग है, जो इनपुट स्ट्रिंग में दिए गए स्थान से शुरू होती है। SQL में SUBSTRING() फ़ंक्शन का उद्देश्य स्ट्रिंग के एक विशिष्ट भाग को लौटाना है।
Substring() के लिए सिंटैक्स
SUBSTRING(Expression, Starting Position, Total Length)
यहाँ:
- SUBSTRING() एक्सप्रेशन में SQL सर्वर यह कोई भी कैरेक्टर, बाइनरी, टेक्स्ट या इमेज हो सकता है। एक्सप्रेशन वह सोर्स स्ट्रिंग है जिससे सबस्ट्रिंग निकाली जाती है।
- स्टार्टिंग पोजीशन, एक्सप्रेशन में उस स्थिति को निर्धारित करती है जहां से नया सबस्ट्रिंग शुरू होना चाहिए।
- कुल लंबाई, प्रारंभिक स्थिति से शुरू होकर, व्यंजक से प्राप्त होने वाले परिणामी सबस्ट्रिंग की कुल अपेक्षित लंबाई है।
SUBSTRING() का उपयोग करने के नियम
- एमएस एसक्यूएल SUBSTRING() फ़ंक्शन में तीनों तर्क अनिवार्य हैं।
- यदि आरंभिक स्थिति एक्सप्रेशन में वर्णों की अधिकतम संख्या से अधिक है, तो SQL सर्वर में SUBSTRING() फ़ंक्शन द्वारा कुछ भी वापस नहीं किया जाता है।
- कुल लंबाई मूल स्ट्रिंग की अधिकतम वर्ण लंबाई से अधिक हो सकती है। इस स्थिति में, परिणामी सबस्ट्रिंग पूरी स्ट्रिंग होती है, जो एक्सप्रेशन में शुरुआती स्थिति से लेकर एक्सप्रेशन के अंतिम वर्ण तक होती है।
नीचे दिया गया आरेख SQL सर्वर में SUBSTRING() फ़ंक्शन के उपयोग को दर्शाता है:
T-SQL सबस्ट्रिंग उदाहरण
मान्यता: मान लीजिए कि हमारे पास ' नामक एक तालिका हैGuruनीचे दिखाए गए अनुसार, दो कॉलम और चार पंक्तियों वाला 99' का प्रारूप। हम इसका उपयोग करेंगे।Guruनिम्नलिखित उदाहरणों में 99' तालिका:
प्रश्न 1: SQL में SUBSTRING() फ़ंक्शन का उपयोग करते समय, यदि लंबाई एक्सप्रेशन की कुल अधिकतम लंबाई से कम है।
SELECT Tutorial_name, SUBSTRING(Tutorial_name,1,2) As SUB from Guru99;
परिणाम: नीचे दिया गया आरेख 'ट्यूटोरियल_नाम' कॉलम के सबस्ट्रिंग को 'SUB' कॉलम के रूप में प्रदर्शित करता है। प्रारंभिक स्थिति 1 है और लंबाई 2 है, इसलिए पहले दो अक्षर लौटाए जाते हैं:
प्रश्न 2: SQL Server में SUBSTRING() फ़ंक्शन का उपयोग करते समय, यदि लंबाई एक्सप्रेशन की कुल अधिकतम लंबाई से अधिक है।
SELECT Tutorial_name, SUBSTRING(Tutorial_name,2,8) As SUB from Guru99;
परिणाम: नीचे दिया गया आरेख 'ट्यूटोरियल_नाम' कॉलम के सबस्ट्रिंग को 'SUB' कॉलम के रूप में प्रदर्शित करता है। यद्यपि सबस्ट्रिंग की लंबाई एक्सप्रेशन की कुल अधिकतम लंबाई से अधिक है, फिर भी कोई त्रुटि उत्पन्न नहीं होती है और क्वेरी प्रारंभिक स्थिति से आगे की पूरी स्ट्रिंग लौटाती है।
SQL सर्वर में CHARINDEX के साथ SUBSTRING का उपयोग करना
SUBSTRING() का एक बहुत ही सामान्य वास्तविक दुनिया का उपयोग हैtracSUBSTRING() फ़ंक्शन किसी विभाजक से पहले या बाद में आने वाले टेक्स्ट को परिभाषित करता है, जैसे कि ईमेल पते में डोमेन। SUBSTRING() फ़ंक्शन को स्वयं एक निश्चित प्रारंभिक स्थिति की आवश्यकता होती है, लेकिन विभाजक की स्थिति प्रत्येक पंक्ति में भिन्न होती है। CHARINDEX() फ़ंक्शन स्ट्रिंग के भीतर किसी वर्ण की स्थिति लौटाकर इस समस्या का समाधान करता है।
CHARINDEX(substring_to_find, expression [, start_location])
SUBSTRING() के अंदर CHARINDEX() को नेस्ट करके, प्रारंभिक स्थिति गतिशील हो जाती है। नीचे दिया गया उदाहरण प्रारंभिक स्थिति का पता लगाता है। @ प्रतीक और उसके बाद सब कुछ लौटाता है। परिवर्तनशील इसमें नमूना मान निहित है:
DECLARE @Email VARCHAR(50) = 'john.doe@guru99.com'; SELECT SUBSTRING(@Email, CHARINDEX('@', @Email) + 1, LEN(@Email)) AS Domain;
यहां, CHARINDEX('@', @Email) @ प्रतीक की स्थिति का पता लगाता है, 1 जोड़ने पर यह उससे आगे बढ़ जाता है, और फिर SUBSTRING() एक्सप्रेशन फ़ंक्शन का उपयोग करता है।tracशेष वर्णों को दर्शाता है। उपरोक्त मान के लिए, क्वेरी डोमेन लौटाती है। गुरु99.comयह CHARINDEX-plus-SUBSTRING पैटर्न T-SQL में संरचित स्ट्रिंग को पार्स करने का मानक तरीका है।
SQL सर्वर में SUBSTRING बनाम LEFT और RIGHT
SQL Server स्ट्रिंग के प्रारंभ या अंत से वर्ण निकालने के लिए LEFT() और RIGHT() फ़ंक्शन भी प्रदान करता है। इन्हें लिखना छोटा होता है, लेकिन ये केवल दोनों सिरों तक ही सीमित हैं। SUBSTRING() सबसे अधिक लचीला है क्योंकि यह किसी भी स्थिति से शुरू हो सकता है। नीचे दी गई तालिका इन दोनों की तुलना करती है:
| समारोह | तर्क | Extracटीएस से | समतुल्य SUBSTRING() |
| बाएँ (अभिव्यक्ति, n) | 2 | स्ट्रिंग की शुरुआत | सबस्ट्रिंग(अभिव्यक्ति, 1, n) |
| सही(अभिव्यक्ति, n) | 2 | डोरी का अंत | सबस्ट्रिंग(अभिव्यक्ति, LEN(अभिव्यक्ति) – n + 1, n) |
| सबस्ट्रिंग (अभिव्यक्ति, प्रारंभ, लंबाई) | 3 | किसी भी स्थिति में | लागू नहीं होता |
संक्षेप में, LEFT() और RIGHT() स्ट्रिंग के सिरों के लिए सुविधाजनक शॉर्टकट हैं, जबकि SUBSTRING() बीच से लिए गए वर्णों सहित सामान्य स्थिति को संभालता है।
सबस्ट्रिंग में ऋणात्मक, शून्य और नल तर्क
बुनियादी नियमों के अलावा, यह जानना भी ज़रूरी है कि SUBSTRING() फ़ंक्शन किनारों पर कैसे काम करता है। जब शुरुआती स्थिति शून्य या ऋणात्मक होती है, तो SQL Server प्रभावी लंबाई (start + length – 1) की गणना करता है और पहली स्थिति से पढ़ना शुरू करता है। जब कोई भी आर्गुमेंट NULL होता है, तो परिणाम भी NULL होता है। नीचे दी गई तालिका आधिकारिक डेटा से सत्यापित है। सबस्ट्रिंग (ट्रांसैक्ट-एसक्यूएल) संदर्भ में, ये मामले दिखाए गए हैं:
| कॉल | परिणाम | कारण |
| सबस्ट्रिंग('Guru99', 1, 4) | Guru | सामान्य कॉल: पहले स्थान से चार अक्षर। |
| सबस्ट्रिंग('Guru99', 0, 3) | Gu | एक से नीचे से शुरू करें: प्रभावी लंबाई 0 + 3 – 1 = 2 है। |
| सबस्ट्रिंग('Guru99', 4, 100) | u99 | स्ट्रिंग से अधिक लंबाई होने पर शेषफल बिना किसी त्रुटि के लौटा दिया जाता है। |
| सबस्ट्रिंग('Guru99', 3, शून्य) | नल | एक NULL आर्गुमेंट पूरे परिणाम को NULL बना देता है। |
इन अपवादों को जानने से अप्रत्याशित स्थितियों से बचा जा सकता है जब प्रारंभिक स्थिति की गणना किसी अन्य कॉलम या किसी अन्य स्रोत से की जाती है। परिवर्तनशील वह शून्य या NULL हो सकता है।





