Перейти к содержимому
Последнее обновление

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