SQL Serverでは、T-SQL TRANSLATE()
関数は、2番目の引数で指定された一部の文字が、3番目の引数で指定された宛先の文字セットに変換された後、最初の引数として提供された文字列を返します。
REPLACE()
に似ています 機能しますが、いくつかの重要な違いがあります。
TRANSLATE()
関数には3つの引数が必要です。入力文字列、置換される文字、およびそれらを置換する文字。
構文
構文は次のようになります:
TRANSLATE ( inputString, characters, translations)
ここで、 inputString 置換する文字を含む文字列です。
文字 引数は、置き換える文字を指定します。
翻訳 引数は、それらの文字を何に置き換えるかを指定します。
例1-基本的な使用法
仕組みの例を次に示します。
SELECT TRANSLATE('Cat', 'at', 'ow') AS Result;
結果:
+----------+ | Result | |----------| | Cow | +----------+
したがって、この例では、a
およびt
文字はo
に置き換えられました およびw
。
この場合、REPLACE()
関数は同じ結果を生成します。 2つの機能を並べて示します。
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()
のみ 機能が有効になりました。これは、この関数が各文字を1つずつ処理するためです。 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) | +---------------+