Funktion COLLATE - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Funktion COLLATE

Die Funktion COLLATE überschreibt die Sortierung einer Zeichenfolgenspalte oder eines Ausdrucks.

Weitere Informationen zur Erstellung von Tabellen mit der Datenbanksortierung finden Sie unter CREATE TABLE.

Weitere Informationen zur Erstellung von Datenbanken mit der Datenbanksortierung finden Sie unter CREATE DATABASE.

Syntax

COLLATE( string, 'case_sensitive' | 'case_insensitive');

Argumente

string

Eine Zeichenfolgenspalte oder ein Ausdruck, die/den Sie überschreiben möchten.

‚case_sensitive‘ | ‚case_insensitive‘

Die Zeichenfolgenkonstante eines Sortierungsnamens. Amazon Redshift unterstützt case_sensitive oder case_insensitive.

Rückgabetyp

Die COLLATE-Funktion gibt abhängig vom ersten Eingabeausdruckstyp VARCHARoder CHAR zurück. Diese Funktion ändert nur die Sortierung des ersten Eingabearguments, nicht jedoch seinen Ausgabewert.

Beispiele

Verwenden Sie das folgende Beispiel, um Tabelle T zu erstellen und col1 in Tabelle T als case_sensitive zu definieren.

CREATE TABLE T ( col1 Varchar(20) COLLATE case_sensitive ); INSERT INTO T VALUES ('john'),('JOHN');

Wenn Sie die erste Abfrage ausführen, gibt Amazon Redshift nur john zurück. Nachdem COLLATE-Funktion auf col1 ausgeführt wurde, ändert sich die Sortierung zu case_insensitive. Die zweite Abfrage gibt john und JOHN zurück.

SELECT * FROM T WHERE col1 = 'john'; +------+ | col1 | +------+ | john | +------+ SELECT * FROM T WHERE COLLATE(col1, 'case_insensitive') = 'john'; +------+ | col1 | +------+ | john | | JOHN | +------+

Verwenden Sie das folgende Beispiel, um Tabelle A zu erstellen und col1 in Tabelle A als case_insensitive zu definieren.

CREATE TABLE A ( col1 Varchar(20) COLLATE case_insensitive ); INSERT INTO A VALUES ('john'),('JOHN');

Wenn Sie die erste Abfrage ausführen, gibt Amazon Redshift john und JOHN zurück. Nachdem COLLATE-Funktion auf col1 ausgeführt wurde, ändert sich die Sortierung zu case_sensitive. Die zweite Abfrage gibt nur john zurück.

SELECT * FROM A WHERE col1 = 'john'; +------+ | col1 | +------+ | john | | JOHN | +------+ SELECT * FROM A WHERE COLLATE(col1, 'case_sensitive') = 'john'; +------+ | col1 | +------+ | john | +------+