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

SQL सर्वर (T-SQL) में TRANSLATE () फ़ंक्शन कैसे काम करता है

SQL सर्वर में, T-SQL TRANSLATE() फ़ंक्शन दूसरे तर्क में निर्दिष्ट कुछ वर्णों के तीसरे तर्क में निर्दिष्ट वर्णों के गंतव्य सेट में अनुवादित होने के बाद पहले तर्क के रूप में प्रदान की गई स्ट्रिंग देता है।

यह REPLACE() . के समान है समारोह, लेकिन कुछ महत्वपूर्ण अंतरों के साथ।

TRANSLATE() फ़ंक्शन के लिए 3 तर्कों की आवश्यकता होती है; इनपुट स्ट्रिंग, बदले जाने वाले वर्ण और उन्हें बदलने के लिए वर्ण।

सिंटैक्स

वाक्य रचना इस प्रकार है:

TRANSLATE ( inputString, characters, translations)

जहां इनपुटस्ट्रिंग वह स्ट्रिंग है जिसमें बदले जाने वाले वर्ण शामिल हैं।

अक्षर तर्क निर्दिष्ट करता है कि किन वर्णों को बदला जाना चाहिए।

अनुवाद तर्क निर्दिष्ट करता है कि उन वर्णों को किससे बदला जाना चाहिए।

उदाहरण 1 - मूल उपयोग

यह कैसे काम करता है इसका एक उदाहरण यहां दिया गया है:

SELECT TRANSLATE('Cat', 'at', 'ow') AS Result;

परिणाम:

+----------+
| Result   |
|----------|
| Cow      |
+----------+

तो इस उदाहरण में, a और t वर्णों को o . से बदल दिया गया और w

इस मामले में, REPLACE() फ़ंक्शन एक ही परिणाम उत्पन्न करेगा। यहां दो कार्य साथ-साथ दिए गए हैं:

SELECT 
  TRANSLATE('Cat', 'at', 'ow') AS 'TRANSLATE',
  REPLACE('Cat', 'at', 'ow') AS 'REPLACE';

परिणाम:

+-------------+-----------+
| TRANSLATE   | REPLACE   |
|-------------+-----------|
| Cow         | Cow       |
+-------------+-----------+

इस मामले में, दोनों कार्यों का परिणाम समान है, लेकिन विभिन्न कारणों से।

यहां बताया गया है कि प्रत्येक फ़ंक्शन ने क्या किया:

  • TRANSLATE() प्रतिस्थापित a और t (प्रत्येक व्यक्तिगत चरित्र)
  • REPLACE() प्रतिस्थापित at (स्ट्रिंग)

उदाहरण 2 - मिश्रित क्रम

यह उदाहरण दर्शाता है कि TRANSLATE() REPLACE() . से अलग है . इस उदाहरण में, मैं बदले जाने वाले वर्णों के क्रम को और साथ ही उन्हें बदलने के लिए वर्णों के क्रम को बदलता हूं:

SELECT 
  TRANSLATE('Cat', 'ta', 'wo') AS 'TRANSLATE',
  REPLACE('Cat', 'ta', 'wo') AS 'REPLACE';

परिणाम:

+-------------+-----------+
| TRANSLATE   | REPLACE   |
|-------------+-----------|
| Cow         | Cat       |
+-------------+-----------+

इस मामले में केवल TRANSLATE() समारोह प्रभावी हुआ। ऐसा इसलिए है क्योंकि यह फ़ंक्शन एक-एक करके प्रत्येक वर्ण से गुजरता है। REPLACE() दूसरी ओर, फ़ंक्शन पूरी स्ट्रिंग को ठीक उसी क्रम में ढूंढता है।

उदाहरण 3 - एक अधिक शक्तिशाली उदाहरण

निम्न उदाहरण TRANSLATE() . के लिए Microsoft दस्तावेज़ पर आधारित है समारोह। यह एक ऐसे परिदृश्य को प्रदर्शित करता है जहां इस फ़ंक्शन का REPLACE() . पर महत्वपूर्ण लाभ होता है समारोह:

SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()') AS Result;

परिणाम:

+---------------+
| Result        |
|---------------|
| 2*(3+4)/(7-2) |
+---------------+

REPLACE() . का उपयोग करके समान परिणाम प्राप्त करने के लिए फ़ंक्शन, हमें यह करने की आवश्यकता होगी:

SELECT
REPLACE
(
      REPLACE
      (
            REPLACE
            (
                  REPLACE
                  (
                        '2*[3+4]/{7-2}',
                        '[',
                        '('
                  ),
                  ']',
                  ')'
            ),
            '{',
            '('
      ),
      '}',
      ')'
) AS Result;

परिणाम:

+---------------+
| Result        |
|---------------|
| 2*(3+4)/(7-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. DATENAME() SQL सर्वर में उदाहरण

  2. उन सभी तालिकाओं को छोड़ दें जिनके नाम एक निश्चित स्ट्रिंग से शुरू होते हैं

  3. SQL सर्वर लॉग शिपिंग और डिजास्टर रिकवरी इंस्टाल और कॉन्फ़िगरेशन -4

  4. SQL सर्वर (T-SQL उदाहरण) में 'स्मॉलडेटटाइम' को 'डेटाटाइमऑफ़सेट' में बदलें

  5. प्रत्येक कॉलम के लिए वर्चर (MAX) का उपयोग किए जाने के बावजूद CSV फ़ाइल आयात करते समय SQL सर्वर में त्रुटियाँ