Catégories :

Fonctions de chaîne et fonctions binaires (Général)

REVERSE

Inverse l’ordre des caractères dans une chaîne, ou des octets dans une valeur binaire.

La valeur renvoyée a la même longueur que l’entrée, mais les caractères / octets sont inversés. Si subject est NULL, le résultat est également NULL.

Syntaxe

REVERSE(<subject>) 
Copy

Détails du classement

  • 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.

    Par exemple, les langues avec des lettres à deux caractères et à trois caractères (par exemple « dzs » en hongrois, « ch » en tchèque) sont inversées en fonction des caractères spécifiques, et non des lettres. Pour un exemple, voir la section Exemples ci-dessous.

Exemples

Cet exemple inverse une chaîne :

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

Cet exemple inverse une date :

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

Ce qui suit montre que dans les langues où une seule lettre est composée de plusieurs caractères, REVERSE est inversé en fonction des caractères et non des lettres :

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