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 sujet est NULL, le résultat est également NULL.

Syntaxe

REVERSE(<subject>)

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

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

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