TRANSLATE 関数

文字式内の特定の文字を置き換えます。

返されるデータの種類:STRING、VARCHAR

構文

引数

expression

文字列に評価されるか強制変換できる有効な式を指定します。expressionには元の文字値が含まれます。

データの種類CHAR、NCHAR、NVARCHAR、VARCHAR

to-characters

TRANSLATEで代替文字として使用する文字を指定します。

データの種類CHAR、NCHAR、NVARCHAR、VARCHAR

from-characters

TRANSLATEで置換する文字を指定します。

データの種類CHAR、NCHAR、NVARCHAR、VARCHAR

詳細

to-charactersとfrom-charactersの値は、個々の文字ごとに対応しています。たとえば、TRANSLATEでは、from-charactersの最初の文字がto-charactersの最初の文字に変更されます。to-charactersの文字数がfrom-charactersの文字数より少ない場合、TRANSLATEはfrom-charactersの余った文字を空白に変更します。to-charactersの文字数がfrom-charactersの文字数より多い場合、TRANSLATEはto-charactersの余った文字を無視します。

比較

TRANSTRN関数は、置換文字列にゼロの長さを使用できるという点でTRANWRD関数と異なります。TRANWRDでは、置換文字列の長さがゼロ場合はかわりに1つの空白を使用します。

TRANSLATE関数は、ユーザーが指定したすべての文字を別の文字に変換します。TRANSLATEは1回の呼び出しで複数の文字をスキャンできます。ただし、このスキャンを実行すると、TRANSLATEは文字列に含まれる個々のすべての文字を検索します。つまり、target文字列内の文字がsource文字列内に見つかった場合、その文字は対応する置換文字列内の文字に置き換えられます。

TRANWRD関数は、単語(または文字のパターン)をスキャンし、それらの単語を2番目の単語(または文字のパターン)で置き換える点でTRANSLATEとは異なります。

例

次のステートメントは、TRANSLATE関数を示しています。

proc cas;
   a=translate('XYZW', 'AB', 'VW');
   print "a=" a;
run;

次の出力がSASログに書き込まれます。

a=XYZB
proc cas;
   string1='AABBAABABB';
   a=translate(string1, '12', 'AB');
   print "a=" a;
run;

次の出力がSASログに書き込まれます。

a=1122112122
最終更新: 2026年9月18日