メインコンテンツまでスキップ
に最終更新

REVERSE

説明​

REVERSE 関数は入力シーケンスの順序を逆にします。文字列引数の場合は文字の順序を逆にした文字列を返し、配列引数の場合は要素の順序を逆にした配列を返します。文字列は文字単位で反転するため、UTF-8 のマルチバイト文字も正しく処理できます。

構文​

REVERSE(<seq>)

パラメータ​

パラメータ説明
<seq>順序を逆にする文字列または配列。型:VARCHAR または ARRAY

戻り値​

入力と同じ型の、順序を逆にしたシーケンスを返します。

  • 文字列を入力した場合:文字の順序を逆にした VARCHAR 型の文字列を返します。
  • 配列を入力した場合:要素の順序を逆にした ARRAY 型の配列を返します。

特殊なケース:

  • 引数が NULL の場合、NULL を返します。
  • 空文字列の場合、空文字列を返します。
  • 空の配列の場合、空の配列を返します。
  • 一文字の文字列は、反転しても変わりません。

例​

  1. 基本的な文字列の反転
SELECT REVERSE('hello');
+------------------+
| REVERSE('hello') |
+------------------+
| olleh |
+------------------+
  1. 配列の要素の反転
SELECT REVERSE(['hello', 'world']);
+-----------------------------+
| REVERSE(['hello', 'world']) |
+-----------------------------+
| ["world", "hello"] |
+-----------------------------+
  1. NULL 値の処理
SELECT REVERSE(NULL);
+---------------+
| REVERSE(NULL) |
+---------------+
| NULL |
+---------------+
  1. 空文字列と空の配列
SELECT REVERSE(''), REVERSE([]);
+-------------+-------------+
| REVERSE('') | REVERSE([]) |
+-------------+-------------+
| | [] |
+-------------+-------------+
  1. 一文字の文字列と要素が一つの配列
SELECT REVERSE('A'), REVERSE(['single']);
+--------------+--------------------+
| REVERSE('A') | REVERSE(['single']) |
+--------------+--------------------+
| A | ["single"] |
+--------------+--------------------+
  1. 数字と特殊文字
SELECT REVERSE('12345'), REVERSE('!@#$%');
+------------------+------------------+
| REVERSE('12345') | REVERSE('!@#$%') |
+------------------+------------------+
| 54321 | %$#@! |
+------------------+------------------+
  1. UTF-8 のマルチバイト文字
SELECT REVERSE('ṭṛì ḍḍumai'), REVERSE('ḍḍumannàri');
+--------------------------------+----------------------------+
| REVERSE('ṭṛì ḍḍumai') | REVERSE('ḍḍumannàri') |
+--------------------------------+----------------------------+
| iamuḍḍ ìṛṭ | irànnamuḍḍ |
+--------------------------------+----------------------------+
  1. 異なる種類の文字を含む文字列
SELECT REVERSE('Hello123'), REVERSE('test@email.com');
+---------------------+--------------------------+
| REVERSE('Hello123') | REVERSE('test@email.com') |
+---------------------+--------------------------+
| 321olleH | moc.liame@tset |
+---------------------+--------------------------+
  1. 複数要素の配列
SELECT REVERSE([1, 2, 3, 4, 5]), REVERSE(['a', 'b', 'c']);
+---------------------------+------------------------+
| REVERSE([1, 2, 3, 4, 5]) | REVERSE(['a', 'b', 'c']) |
+---------------------------+------------------------+
| [5, 4, 3, 2, 1] | ["c", "b", "a"] |
+---------------------------+------------------------+
  1. 回文の確認
SELECT REVERSE('level'), REVERSE('12321');
+------------------+-------------------+
| REVERSE('level') | REVERSE('12321') |
+------------------+-------------------+
| level | 12321 |
+------------------+-------------------+