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) | +---------------+