Categorias:

Funções de cadeia de caracteres e binários (General)

REVERSE

Inverte a ordem dos caracteres em uma cadeia de caracteres, ou de bytes em um valor binário.

O valor retornado tem o mesmo comprimento que a entrada, mas com os caracteres/bytes em ordem inversa. Se subject for NULL, o resultado também é NULL.

Sintaxe

REVERSE(<subject>)
Copy

Detalhes do agrupamento

  • No impact.

  • The collation of the result is the same as the collation of the input.

  • In languages where the alphabet contains digraphs or trigraphs (such as «Dz» and «Dzs» in Hungarian), each character in each digraph and trigraph is treated as an independent character, not as part of a single multi-character letter.

    Por exemplo, os idiomas com letras de 2 ou 3 caracteres (por exemplo, “dzs” em húngaro, “ch” em tcheco) são invertidos com base nos caracteres individuais, não nas letras. Consulte a seção Exemplos abaixo para um exemplo.

Exemplos

Este exemplo inverte uma cadeia de caracteres:

SELECT REVERSE('Hello, world!');
+--------------------------+
| REVERSE('HELLO, WORLD!') |
|--------------------------|
| !dlrow ,olleH            |
+--------------------------+
Copy

Este exemplo inverte uma data:

SELECT '2019-05-22'::DATE, REVERSE('2019-05-22'::DATE) AS reversed;
+--------------------+------------+
| '2019-05-22'::DATE | REVERSED   |
|--------------------+------------|
| 2019-05-22         | 22-50-9102 |
+--------------------+------------+
Copy

O seguinte mostra que em idiomas onde uma única letra é composta de vários caracteres, REVERSE inverte com base nos caracteres, não nas letras:

CREATE TABLE strings (s1 VARCHAR COLLATE 'en', s2 VARCHAR COLLATE 'hu');
INSERT INTO strings (s1, s2) VALUES ('dzsa', COLLATE('dzsa', 'hu'));
Copy
SELECT s1, s2, REVERSE(s1), REVERSE(s2) 
    FROM strings;
+------+------+-------------+-------------+
| S1   | S2   | REVERSE(S1) | REVERSE(S2) |
|------+------+-------------+-------------|
| dzsa | dzsa | aszd        | aszd        |
+------+------+-------------+-------------+
Copy