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.
COLLATEFunktion
Die COLLATE Funktion ü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 CHAR
je nach Typ des ersten Eingabeausdrucks VARCHAR
oder 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 die COLLATE Funktion auf col1 ausgeführt wurde, lautet die Sortierung. 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 die COLLATE Funktion auf Col1 ausgeführt wurde, lautet die Sortierung. 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 | +------+