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>)
Copy

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

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

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