TRANSLATE
説明
TRANSLATE関数は文字列置換に使用され、マッピングルールに従ってソース文字列内の文字を変換します。'from'文字列に含まれるソース文字列内の文字を、'to'文字列内の対応する文字で置き換えます。
構文
TRANSLATE(<source>, <from>, <to>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<source> | 変換対象の文字列。型: VARCHAR |
<from> | 置換される文字の集合。型: VARCHAR |
<to> | 置換文字の集合。型: VARCHAR |
Return Value
変換された文字列を表すVARCHAR型を返します。
特殊なケース:
- いずれかのパラメータがNULLの場合、NULLを返します
- 'from'文字列に重複する文字がある場合、最初に出現するもののみが使用されます
- ソース文字が'from'文字列に含まれていない場合、その文字は変更されません
- 'from'文字列内での文字の位置が'to'文字列の長さを超える場合、対応するソース文字は削除されます
- 'from'と'to'の両方が空文字列の場合、元の文字列を返します
Examples
- 基本的な文字置換
SELECT translate('abcd', 'a', 'z');
+---------------------------+
| translate('abcd', 'a', 'z') |
+---------------------------+
| zbcd |
+---------------------------+
- 同一文字の複数置換
SELECT translate('abcda', 'a', 'z');
+----------------------------+
| translate('abcda', 'a', 'z') |
+----------------------------+
| zbcdz |
+----------------------------+
- 特殊文字の置換
SELECT translate('Palhoça', 'ç', 'c');
+--------------------------------+
| translate('Palhoça', 'ç', 'c') |
+--------------------------------+
| Palhoca |
+--------------------------------+
- 文字の削除(空の'to'文字列)
SELECT translate('abcd', 'a', '');
+----------------------------+
| translate('abcd', 'a', '') |
+----------------------------+
| bcd |
+----------------------------+
- 'from'文字列内の重複文字
SELECT translate('abcd', 'aac', 'zq');
+--------------------------------+
| translate('abcd', 'aac', 'zq') |
+--------------------------------+
| zbd |
+--------------------------------+