SQL सर्वर में, आप T-SQL का उपयोग कर सकते हैं REPLACE()
किसी दिए गए स्ट्रिंग के सभी उदाहरणों को किसी अन्य स्ट्रिंग के साथ बदलने के लिए फ़ंक्शन। उदाहरण के लिए, आप किसी निश्चित शब्द की सभी घटनाओं को दूसरे शब्द से बदल सकते हैं।
सिंटैक्स
यहाँ आधिकारिक सिंटैक्स है:
REPLACE ( string_expression , string_pattern , string_replacement )
जहां string_expression
वह स्ट्रिंग है जिसमें प्रतिस्थापित करने के लिए स्ट्रिंग (या सबस्ट्रिंग) के एक या अधिक उदाहरण शामिल हैं, string_pattern
प्रतिस्थापित करने के लिए स्ट्रिंग है, और string_replacement
इसे बदलने के लिए स्ट्रिंग है।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
SELECT REPLACE('My apartment has some art hanging on the walls and some pot plants hanging from the ceiling.', 'some', 'no');
परिणाम:
My apartment has no art hanging on the walls and no pot plants hanging from the ceiling.
तो इस उदाहरण में हम केवल some
. शब्द को प्रतिस्थापित करते हैं शब्द के साथ no
।
एकाधिक शब्द
बेशक, ऐसा कोई नियम नहीं है जो कहता है कि आप केवल एक शब्द को एक शब्द से बदल सकते हैं (और इसके विपरीत)। आखिरकार, हम केवल एक स्ट्रिंग को दूसरी स्ट्रिंग से बदल रहे हैं, भले ही उस स्ट्रिंग में शब्द, अक्षर, संख्याएं, रिक्त स्थान आदि हों या नहीं।
तो हम आसानी से उस एक शब्द को दो या दो से अधिक शब्दों से बदल सकते थे:
SELECT REPLACE('My apartment has some art hanging on the walls and some pot plants hanging from the ceiling.', 'some', 'lots of');
परिणाम:
My apartment has lots of art hanging on the walls and lots of pot plants hanging from the ceiling.
तो यहाँ हम some
. शब्द को प्रतिस्थापित करते हैं शब्दों के साथ lots of
।
एक शब्द निकालें
आप स्ट्रिंग से एक शब्द (या सबस्ट्रिंग) भी हटा सकते हैं। ऐसा करने के लिए, बस इसे खाली स्ट्रिंग से बदलें:
SELECT REPLACE('My apartment has some art hanging on the walls and some pot plants hanging from the ceiling.', 'some', '');
परिणाम:
My apartment has art hanging on the walls and pot plants hanging from the ceiling.
हालाँकि, यदि आप बारीकी से देखते हैं, तो आप देखेंगे कि नई स्ट्रिंग में दोहरे स्थान हैं जहाँ हमने शब्द को हटा दिया है। ऐसा इसलिए है क्योंकि हमने जो शब्द हटाया था, उसके बाएँ और दाएँ रिक्त स्थान थे। हमने शब्द हटा दिया लेकिन हमने कोई रिक्त स्थान नहीं हटाया, इसलिए, दो रिक्त स्थान शेष हैं।
हम हटाए जाने वाले शब्द में किसी एक स्थान को शामिल करके इसे ठीक कर सकते हैं:
SELECT REPLACE('My apartment has some art hanging on the walls and some pot plants hanging from the ceiling.', 'some ', '');
परिणाम:
My apartment has art hanging on the walls and pot plants hanging from the ceiling.
सावधान रहें!
REPLACE()
. का उपयोग करते समय गलती करना बहुत आसान है फ़ंक्शन (या कोई भी उस मामले के लिए कार्यक्षमता ढूंढें और बदलें)।
उदाहरण के लिए, यह गलती:
SELECT REPLACE('My apartment has some art hanging on the walls and some pot plants hanging from the ceiling.', 'art', 'pictures');
परिणाम:
My appicturesment has some pictures hanging on the walls and some pot plants hanging from the ceiling.
जैसा कि आप देख सकते हैं, हमने art
. शब्द को बदल दिया है pictures
. के साथ . हालांकि, इस मामले में शब्द apartment
भी प्रभावित हुआ था - यह apicturesment
में बदल गया है , जिसका इरादा नहीं था। ऐसा इसलिए है क्योंकि शब्द apartment
सबस्ट्रिंग शामिल है art
।
आप आमतौर पर खोज शब्द के आस-पास रिक्त स्थान जोड़कर, साथ ही प्रतिस्थापन शब्द जोड़कर इससे बचाव कर सकते हैं:
SELECT REPLACE('My apartment has some art hanging on the walls and some pot plants hanging from the ceiling.', 'art', 'pictures');
परिणाम:
My apartment has some pictures hanging on the walls and some pot plants hanging from the ceiling.
यह स्पष्ट रूप से मानता है कि आप पूरे शब्द को बदल रहे हैं। आपको प्रत्येक स्थिति का आकलन करने की आवश्यकता होगी जैसे ही वह उत्पन्न होती है।
संयोजन/केस-संवेदनशीलता
आप वैकल्पिक COLLATE
. का उपयोग कर सकते हैं इनपुट के लिए एक स्पष्ट संयोजन लागू करने के लिए खंड। यह केस-संवेदी खोज/प्रतिस्थापन संचालन और इसी तरह के प्रदर्शन करने के लिए आसान हो सकता है।
यहां एक उदाहरण दिया गया है जो दो कोलाजंस की तुलना करता है।
केस-असंवेदनशील
SELECT REPLACE('Cats, cats, and more cats!' COLLATE SQL_Latin1_General_CP1_CI_AS, 'cat', 'Dog');
परिणाम:
Dogs, Dogs, and more Dogs!
इस उदाहरण में, हमारे द्वारा निर्दिष्ट संयोजन में _CI
. शामिल है इसके नाम में, जिसका अर्थ है "केस असंवेदनशील"। पहली घटना में अपरकेस वर्ण होने के बावजूद, यह सभी घटनाओं को प्रतिस्थापित करने का कारण बनता है।
आप देखेंगे कि यह विधि बदले गए स्ट्रिंग के मामले को प्रभावित नहीं करती है।
केस-संवेदी
SELECT REPLACE('Cats, cats, and more cats!' COLLATE SQL_Latin1_General_CP1_CS_AS, 'cat', 'Dog');
परिणाम:
Cats, Dogs, and more Dogs!
इस उदाहरण में, हमारे द्वारा निर्दिष्ट संयोजन में _CS
. शामिल है इसके नाम में, जिसका अर्थ है "केस सेंसिटिव"। यह Cat
. की पहली घटना का कारण बनता है छोड़ दिया जाना चाहिए, क्योंकि इसका पहला अक्षर एक अपरकेस अक्षर है (जो दूसरे तर्क के मामले से मेल नहीं खाता)।