カテゴリ:

文字列とバイナリ関数 (一般)

REVERSE

文字列の文字の順序、またはバイナリ値のバイトの順序を逆にします。

返される値は入力と同じ長さですが、文字/バイトの順序は逆です。 サブジェクト が NULLの場合、結果も NULLです。

構文

REVERSE(<subject>)

照合の詳細

  • 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.

    たとえば、2文字と3文字の文字(ハンガリー語の「dzs」、チェコ語の「ch」など)は、文字のみではなく数字や記号を含む個々の文字に基づいて逆にされます。例については、下記の セクションをご参照ください。

この例では、文字列を逆にします。

SELECT REVERSE('Hello, world!');
+--------------------------+
| REVERSE('HELLO, WORLD!') |
|--------------------------|
| !dlrow ,olleH            |
+--------------------------+

この例は、日付を逆にします。

SELECT '2019-05-22'::DATE, REVERSE('2019-05-22'::DATE) AS reversed;
+--------------------+------------+
| '2019-05-22'::DATE | REVERSED   |
|--------------------+------------|
| 2019-05-22         | 22-50-9102 |
+--------------------+------------+

以下は、単一の文字が複数の文字で構成されている言語では、 REVERSE は文字のみではなく数字や記号を含む個々の文字に基づいて逆にされることを示しています。

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