- Categorias:
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>)
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 | +--------------------------+
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 | +--------------------+------------+
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'));SELECT s1, s2, REVERSE(s1), REVERSE(s2) FROM strings; +------+------+-------------+-------------+ | S1 | S2 | REVERSE(S1) | REVERSE(S2) | |------+------+-------------+-------------| | dzsa | dzsa | aszd | aszd | +------+------+-------------+-------------+