SQL सर्वर में एक सीमांकित चार द्वारा स्ट्रिंग को विभाजित करने के लिए कैसे?



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

इस लेख में, हम सीमांकित स्ट्रिंग मान को विभाजित करने के कई तरीकों पर चर्चा करेंगे। सहित कई तरीकों का उपयोग करके इसे प्राप्त किया जा सकता है।



  • स्ट्रिंग को विभाजित करने के लिए STRING_SPLIT फ़ंक्शन का उपयोग
  • स्ट्रिंग को विभाजित करने के लिए एक उपयोगकर्ता-परिभाषित तालिका-मूल्यवान फ़ंक्शन बनाएं,
  • स्ट्रिंग मान को विभाजित करने और एक सीमांकित स्ट्रिंग को XML में बदलने के लिए XQuery का उपयोग करें

सबसे पहले, हमें एक तालिका बनाने और उसमें डेटा सम्मिलित करने की आवश्यकता है जिसका उपयोग तीनों विधियों में किया जाएगा। तालिका में फ़ील्ड आईडी और स्ट्रिंग में सीमांकक वर्ण वाली एकल पंक्ति होनी चाहिए। निम्नलिखित कोड का उपयोग करके 'छात्र' नाम की एक तालिका बनाएं।



सृजन योग्य छात्र (ID INT पहचान) (1, 1), student_name VARCHAR (MAX))

निम्नलिखित कोड को निष्पादित करके एक पंक्ति में अल्पविराम द्वारा अलग किए गए छात्र नाम डालें।



INSERT INTO के छात्र (student_name) VALUES ('मोनरो, मोंटेन्ज़, मारोलाहकिस, नेगले, अलब्राइट, गैरोफ़्लो, परेरा, जॉनसन, वैगनर, कोनराड)

तालिका निर्माण और डेटा प्रविष्टि

सत्यापित करें कि डेटा तालिका में डाला गया है या निम्न कोड का उपयोग नहीं कर रहा है।

छात्र से * का चयन करें

सत्यापित करें कि डेटा 'छात्र' तालिका में डाला गया है



विधि 1: स्ट्रिंग को विभाजित करने के लिए STRING_SPLIT फ़ंक्शन का उपयोग करें

SQL सर्वर 2016 में, 'STRING_SPLIT' फ़ंक्शन पेश किया गया था जिसे संगतता स्तर 130 और इसके बाद के संस्करण के साथ उपयोग किया जा सकता है। यदि आप 2016 SQL सर्वर संस्करण या उच्चतर का उपयोग करते हैं तो आप इस बिल्ड-इन फ़ंक्शन का उपयोग कर सकते हैं।

और भी 'STRING_SPLIT' इनपुट एक स्ट्रिंग है जो सब-स्ट्रिंग्स को सीमांकित करता है और एक चरित्र को सीमांकक या विभाजक के रूप में उपयोग करने के लिए इनपुट करता है। फ़ंक्शन एकल-स्तंभ तालिका को आउटपुट करता है जिसकी पंक्तियों में उप-स्ट्रिंग्स होते हैं। आउटपुट कॉलम का नाम है “ मान ' । इस फ़ंक्शन को दो पैरामीटर मिलते हैं। पहला पैरामीटर एक स्ट्रिंग है और दूसरा एक सीमांकक चरित्र या विभाजक है जिसके आधार पर हमें स्ट्रिंग को विभाजित करना होगा। आउटपुट में एकल-स्तंभ तालिका होती है जिसमें सबस्ट्रिंग मौजूद होते हैं। इस आउटपुट कॉलम का नाम है 'मान' जैसा कि हम नीचे दिए गए आंकड़े में देख सकते हैं। इसके अलावा, 'STRL SPLIT' यदि इनपुट स्ट्रिंग NULL है, तो table_valued फ़ंक्शन एक खाली तालिका देता है।

डेटाबेस की संगतता स्तर:

से प्रत्येकडेटाबेसहैजुड़े हुएसाथ मेंसेवाअनुकूलतास्तर।यहसक्षम बनाता हैडेटाबेस कीव्यवहारसेवाहोनासंगतवें के साथहैविशेषएसक्यूएलसर्वरसंस्करणयहरनपर।

अब हम 'string_split' फ़ंक्शन को कॉमा द्वारा विभाजित सीमांकित विभाजित करने के लिए कहेंगे। लेकिन संगतता स्तर 130 से कम था इसलिए निम्नलिखित त्रुटि को उठाया गया था। 'अमान्य ऑब्जेक्ट नाम 'SPLIT_STRING''

यदि डेटाबेस का संगतता स्तर 130 से कम है, तो त्रुटि उत्पन्न होती है 'अमान्य ऑब्जेक्ट नाम विभाजित_string'

इस प्रकार हमें डेटाबेस संगतता स्तर 130 या उससे अधिक निर्धारित करने की आवश्यकता है। इसलिए हम डेटाबेस के संगतता स्तर को निर्धारित करने के लिए इन चरणों का पालन करेंगे।

  • निम्नलिखित कोड का उपयोग करके सबसे पहले डेटाबेस को 'single_user_access_mode' पर सेट करें।
अन्य विवरण SINGLE_USER सेट करें
  • दूसरे, निम्नलिखित कोड का उपयोग करके डेटाबेस के संगतता स्तर को बदलें।
पहले से पढ़िए COMPATIBILITY_LEVEL = 130 को सेट करें
  • निम्नलिखित कोड का उपयोग करके डेटाबेस को बहु-उपयोगकर्ता पहुंच मोड में वापस रखें।
DATABASE सेट MULTI_USER को बदल दें
उपयोग [मास्टर] GOAT DATABASE [Bridge_centrality] SET SINGLE_USER ALAT DATABASE [ब्रिज_centrality] सेट करें COMPATIBILITY_LEVEL = 130 अलर्ट DATASE पर जाएं [ब्रिज_सेंटरैलिटी] SET MULTI_USER जाओ

आउटपुट होगा:

अनुकूलता स्तर को 130 में बदलें

अब आवश्यक परिणाम प्राप्त करने के लिए इस कोड को चलाएं।

DECLARE @string_value VARCHAR (MAX); SET @ string_value = 'Monroy, Montanez, Marolahakis, Negley, Albright, Garofolo, Pereira, Johnson, Wagner, Conrad' SELECT * FROM STRING_SPLIT (@string_value) से