- Kategorien:
Zeichenfolgen- und Binärfunktionen (Allgemein)
REVERSE¶
Kehrt die Reihenfolge der Zeichen in einer Zeichenfolge bzw. der Bytes in einem Binärwert um.
Der zurückgegebene Wert hat die gleiche Länge wie die Eingabe, aber die Zeichen/Bytes sind in umgekehrter Reihenfolge. Wenn subject
NULL ist, lautet auch das Ergebnis NULL.
Syntax¶
REVERSE(<subject>)
Sortierungsdetails¶
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.
Beispielsweise werden Sprachen mit Buchstaben aus 2 Zeichen und 3 Zeichen (z. B. „dzs“ auf Ungarisch, „ch“ auf Tschechisch) anhand der einzelnen Zeichen und nicht der Buchstaben umgekehrt. Ein Beispiel dazu finden Sie im Abschnitt Beispiele unten.
Beispiele¶
In diesem Beispiel wird eine Zeichenfolge umgekehrt:
SELECT REVERSE('Hello, world!'); +--------------------------+ | REVERSE('HELLO, WORLD!') | |--------------------------| | !dlrow ,olleH | +--------------------------+
In diesem Beispiel wird ein Datum umgekehrt:
SELECT '2019-05-22'::DATE, REVERSE('2019-05-22'::DATE) AS reversed; +--------------------+------------+ | '2019-05-22'::DATE | REVERSED | |--------------------+------------| | 2019-05-22 | 22-50-9102 | +--------------------+------------+
Das Folgende Beispiel zeigt, dass in Sprachen, in denen ein einzelner Buchstabe aus mehreren Zeichen besteht, REVERSE
anhand von Zeichen und nicht von Buchstaben umkehrt:
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 | +------+------+-------------+-------------+