Funktion COLLATE - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

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' | 'cs' | 'case_insensitive' | 'ci');

Argumente

string

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

'case_sensitive' | 'cs' | 'case_insensitive' | 'ci'

Die Zeichenfolgenkonstante eines Sortierungsnamens. Amazon Redshift unterstützt nur die folgenden Werte für diesen Parameter:

  • case_sensitive

  • cs

  • case_insensitive

  • Ci

case_sensitive und cs sind austauschbar und liefern dieselben Ergebnisse. Ebenso sind case_insensitive und ci austauschbar und führen zu denselben Ergebnissen.

Rückgabetyp

Die Funktion COLLATE gibt abhängig vom ersten Eingabeausdruckstyp VARCHAR, CHAR oder SUPER 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 | +------+