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

SQL में REPLACE का उपयोग कैसे करें

SQL के साथ डेटा क्वेरी करते समय, स्ट्रिंग-आधारित परिणामों में हेरफेर करने की आवश्यकता बहुत आम है। इस कार्य के लिए प्रमुख रिलेशनल डेटाबेस सिस्टम में कई विकल्प हैं। इस लेख में, हम REPLACE SQL फ़ंक्शन के उपयोग के मामले और कार्यक्षमता पर चर्चा करेंगे।

आर के साथ शुरुआत करनाEPLACE

FIND और REPLACE कार्यक्षमता सभी के लिए अच्छी तरह से जानी जाती है क्योंकि यह किसी भी टेक्स्ट एडिटर के साथ आती है। ANSI SQL एक अंतर्निहित सिस्टम फ़ंक्शन के रूप में REPLACE कार्यक्षमता प्रदान करता है। इस लेख में, मैं अपनी पसंद के RDMS के रूप में SQL सर्वर का उपयोग करूँगा।

REPLACE फ़ंक्शन पैरामीटर

बदलें (string_expression, string_pattern, string_replacement)

स्ट्रिंग_एक्सप्रेशन एक स्ट्रिंग है जिसे रूपांतरित किया जाएगा, यह आने वाली SQL क्वेरी से एकल स्ट्रिंग या कॉलम हो सकता है।

स्ट्रिंग_पैटर्न एक खोज पैटर्न है जिसे बदले जाने वाले स्ट्रिंग एक्सप्रेशन पर लागू किया जाता है।

String_replacement स्ट्रिंग पर लागू किया जाने वाला एक प्रतिस्थापन मान है जब स्ट्रिंग _पैटर्न string_expression . से मेल खाता है

आइए REPLACE कार्यक्षमता को बेहतर ढंग से समझने के लिए कई उदाहरणों पर एक नज़र डालें।

नमूना डेटा बनाना

इस उदाहरण के लिए, मैं एक अस्थायी तालिका बनाऊंगा REPLACE फ़ंक्शन के साथ उपयोग करने के लिए। कॉलम नाम फ़ंक्शन के पैरामीटर मानों से मेल खाएंगे।


IF OBJECT_ID(N'tempdb..#TEMP_REPLACE_DEMO') IS NOT NULL
DROP TABLE #TEMP_REPLACE_DEMO


CREATE TABLE #TEMP_REPLACE_DEMO
(
ID INT IDENTITY(1,1),
STRING_EXPRESSION VARCHAR(2000),
STRING_PATTERN VARCHAR(200),
STRING_REPLACEMENT VARCHAR(200)
)

--REPLACE THE VALUE CAR WITH FOX
INSERT INTO #TEMP_REPLACE_DEMO
VALUES('The red car is the fastest car in the race.','car','fox')

--REPLACE THE VALUE 4 WITH 8
INSERT INTO #TEMP_REPLACE_DEMO
VALUES('There are 4 model ford cars in the parking lot.','4','8')

--REMOVE THE BLANK SPACE CHARACTER
INSERT INTO #TEMP_REPLACE_DEMO
VALUES('    This sentence    has     irregular spacing              .       ',' ','')

सरल और गतिशील REPLACE उदाहरण

अब जबकि तालिका कुछ नमूना डेटा से भरी हुई है, आइए देखें कि प्रतिस्थापन . कैसे फ़ंक्शन को बुनियादी स्तर पर और फिर अधिक गतिशील क्षमता में डेटा पर लागू किया जा सकता है।

पहले उदाहरण में, पैरामीटर को फ़ंक्शन के स्ट्रिंग मानों के रूप में हार्ड-कोड किया गया है।

--REPLACE THE VALUE CAR WITH FOX
SELECT REPLACE('The red car is the fastest car in the race.','car','fox') AS RESULT_FOR_SENTENCE

मूल्यों को गतिशील रूप से तालिका से भी पढ़ा जा सकता है। इस मामले में, व्यंजक, पैटर्न, और प्रतिस्थापन मान सभी हार्ड-कोड किए जाने के बजाय सीधे तालिका से पढ़े जाते हैं।

--DYNAMIC EXAMPLE FOR ALL COLUMNS IN THE TABLE.
SELECT ID,REPLACE(STRING_EXPRESSION,STRING_PATTERN,STRING_REPLACEMENT) AS RESULT_FOR_TABLE
FROM #TEMP_REPLACE_DEMO

आईडी 1 के परिणाम ऊपर दिए गए उदाहरण के समान हैं, केवल अंतर यह है कि मानों को अलग-अलग कॉलम से पढ़ा गया था।

नेस्टेड प्रतिस्थापन

REPLACE फ़ंक्शन का उपयोग नेस्टेड क्षमता में भी किया जा सकता है। इसका मतलब है कि आंतरिक प्रतिस्थापन फ़ंक्शन के परिणाम बाहरी प्रतिस्थापन फ़ंक्शन का STRING_EXPRESSION पैरामीटर बन सकते हैं।

नमूना डेटा पर इस पैटर्न के कुछ उदाहरण यहां दिए गए हैं:

--REPLACE THE VALUE CAR WITH FOX | REPLACE THE VALUE "fastest" WITH "slowest"
SELECT REPLACE(REPLACE('The red car is the fastest car in the race.','car','fox'),'fastest','slowest')


--REMOVE THE BLANK SPACE CHARACTER | REPLACE THE VALUE "irregular" with "no"
SELECT REPLACE(REPLACE('    This sentence    has     irregular spacing              .       ',' ',''),'irregular','NO')

संयोजन और REPLACE एसक्यूएल में

स्ट्रिंग डेटा और REPLACE फ़ंक्शन के साथ काम करते समय Collation पर विचार करना एक महत्वपूर्ण कारक है। कोलेशन को डेटाबेस के कई स्तरों पर सेट किया जा सकता है जैसे कि खाता या इंस्टेंस स्तर, डेटाबेस, स्कीमा, सत्र या तालिका स्तर। यह सेटिंग प्रभावित कर सकती है कि REPLACE फ़ंक्शन कैसे काम करता है।

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

--REPLACEMENT WITHOUT EXPLICIT COLLATION.
SELECT REPLACE('A','a','b') AS DEFAULT_COLLATION

यह परिणाम मिलान के कारण ए से ए से मेल खाता है।

SQL सर्वर में कॉलेशन सेटिंग को सर्वर स्तर पर चेक किया जा सकता है:

--VIEW CURRENT COLLATION
SELECT CONVERT (varchar(256), SERVERPROPERTY('collation')); 
 

यहां कुंजी सीआई है जो केस असंवेदनशील है। REPLACE फ़ंक्शन को केस-संवेदी क्षमता में लागू करने के लिए, string_expression पैरामीटर को स्पष्ट रूप से समेटा जा सकता है।

-- USE COLLATE TO MATCH CHARACTER CASING FOR REPLACE
SELECT REPLACE('A' COLLATE Latin1_General_CS_AS ,'a','b') as Explicit_Collation;

इस उदाहरण में, क्योंकि string_expression पैरामीटर को केस संवेदी के रूप में संयोजित किया गया है, REPLACE फ़ंक्शन मूल मान को प्रतिस्थापित नहीं करता है।

सारांश

REPLACE फ़ंक्शन कई रिलेशनल डेटाबेस सिस्टम में बुनियादी और उन्नत स्ट्रिंग हेरफेर के लिए एक बेहतरीन टूल है। इस आलेख ने REPLACE फ़ंक्शन के मूल अनुप्रयोग की जांच की, कि इसे गतिशील क्षमता में कैसे उपयोग किया जाए। हमने REPLACE को एक नेस्टेड फ़ंक्शन के रूप में उपयोग करने पर भी चर्चा की, और यह भी चर्चा की कि संयोजन इसके द्वारा दिए गए परिणामों को कैसे प्रभावित कर सकता है।


  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 में स्कीमा क्या है और इसे कैसे बनाया जाता है?

  2. समूहीकृत कुल पुशडाउन

  3. कंटेनर डेटाबेस (सीडीबी) में उपयोगकर्ता पासवर्ड बदलते समय त्रुटि ORA-65048

  4. फास्ट लोकल स्टोरेज की तलाश में

  5. Django प्रवासन में गहरी खुदाई