- Catégories :
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>)
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 | +------+------+-------------+-------------+