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