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