Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में एक स्ट्रिंग को कैसे विभाजित करें

समस्या:

आप SQL सर्वर में एक स्ट्रिंग को विभाजित करना चाहते हैं।

उदाहरण 1:

आपके पास एक वाक्य है, और आप इसे स्पेस कैरेक्टर से विभाजित करना चाहेंगे।

समाधान 1:

SELECT value
FROM STRING_SPLIT('An example sentence.', ' ');

परिणाम इस तरह दिखता है:

मान
एक
उदाहरण
वाक्य।

चर्चा:

SQL सर्वर में STRING_SPLIT (स्ट्रिंग, विभाजक) फ़ंक्शन दूसरे तर्क में विभाजक द्वारा पहले तर्क में स्ट्रिंग को विभाजित करता है। वाक्य को शब्दों में विभाजित करने के लिए, वाक्य को STRING_SPLIT() के पहले तर्क के रूप में निर्दिष्ट करें फ़ंक्शन और '' दूसरे तर्क के रूप में।

STRING_SPLIT() मूल्य नामक कॉलम में परिणाम। स्ट्रिंग के प्रत्येक भाग को एक अलग पंक्ति में प्राप्त करने के लिए, STRING_SPLIT(string, separator) से मान चुनें . उदाहरण के लिए,

SELECT value
FROM STRING_SPLIT('An example sentence.', ' ');

बेशक, आप किसी अन्य विभाजक, जैसे, अल्पविराम का उपयोग करके एक स्ट्रिंग को विभाजित कर सकते हैं। आप किसी अन्य कॉलम की तरह ही कॉलम का नाम भी बदल सकते हैं।

उदाहरण 2:

texts तालिका, कुछ वाक्य हैं।

वाक्य
यह पहला वाक्य है।
और ये रहा दूसरा।

आप वाक्यों को स्पेस कैरेक्टर से विभाजित करना चाहते हैं।

समाधान 2:

SELECT value
FROM texts
CROSS APPLY STRING_SPLIT(sentence, ' ');

परिणाम इस तरह दिखता है:

मान
यह
है
पहले
वाक्य।
और
यहां
अन्य
एक।

चर्चा:

पिछले उदाहरण की तरह, STRING_SPLIT (पाठ, विभाजक) फ़ंक्शन विभाजक द्वारा पहले तर्क के रूप में दी गई स्ट्रिंग को विभाजित करता है। इस बार, आपके पास ध्यान रखने के लिए कुछ वाक्य हैं; ये वाक्य texts . में संगृहीत हैं टेबल। यही कारण है कि आपको क्रॉस एप्लाई का उपयोग करने की आवश्यकता है; अधिक विशेष रूप से,

texts CROSS APPLY STRING_SPLIT(sentence, ' ')

इसका उपयोग FROM . में करें खंड। इसका अर्थ है कि दाईं ओर (STRING_SPLIT(sentence, ' ') ) बाईं ओर की तालिका की प्रत्येक पंक्ति पर लागू होता है (texts ) यही कारण है कि दाईं ओर बाईं ओर की तालिका के स्तंभों का उपयोग किया जा सकता है (यहां, texts तालिका।) यहां आपको प्राप्त होने वाली क्वेरी है।

SELECT value
FROM texts
CROSS APPLY STRING_SPLIT(sentence, ' ');

उदाहरण 3:

texts तालिका, दो कॉलम हैं:id और sentence

आईडी वाक्य
1 यह पहला वाक्य है।
2 और ये रहा दूसरा।

आप वाक्यों को स्पेस कैरेक्टर से विभाजित करना चाहते हैं और वाक्यों की आईडी भी दिखाना चाहते हैं।

समाधान 3:

SELECT
  id,
  value
FROM texts
CROSS APPLY STRING_SPLIT(sentence, ' ');

परिणाम इस तरह दिखता है:

आईडी मान
1 यह
1 है
1
1 पहले
1 वाक्य.
2 और
2 यहां
2
2 अन्य
2 एक।

चर्चा:

यह उदाहरण बहुत समान है, लेकिन आप id . भी देखना चाहते हैं कॉलम। इस कॉलम को देखने के लिए, बस इसे SELECT . में जोड़ें सूची और अल्पविराम शामिल करना याद रखें। आप परिणाम में वाक्य के भागों के साथ वाक्य की आईडी देखेंगे। उदाहरण के लिए, पहला वाक्य 5 भागों में विभाजित है और इसकी आईडी 1 . है . इसलिए, परिणाम तालिका में सभी 5 भागों के लिए आईडी 1 . होगी . अगला वाक्य, आईडी के साथ 2 , को भी 5 भागों में विभाजित किया गया है, और इनमें से प्रत्येक भाग को id = 2 . के साथ दिखाया जाएगा ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर DIFFERENCE () फ़ंक्शन कैसे काम करता है

  2. किसी मौजूदा कॉलम में एक पहचान जोड़ना

  3. SQL सर्वर अनुक्रमणिका:प्रमुख आवश्यकताएं, प्रदर्शन प्रभाव और विचार

  4. SQL का उपयोग करके लगातार दिनांक सीमाओं का पता लगाएं

  5. SQL सर्वर में अलर्ट और ऑपरेटरों का उपयोग करना