COLLATEfonction - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

COLLATEfonction

La COLLATE fonction remplace le classement d'une chaîne, d'une colonne ou d'une expression.

Pour plus d'informations sur la création de tables à l'aide du classement de bases de données, consultez CREATE TABLE.

Pour plus d'informations sur la création de bases de données à l'aide du classement de bases de données, consultez CREATE DATABASE.

Syntaxe

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

Arguments

string

Colonne de chaîne ou expression que vous voulez remplacer.

’case_sensitive’ | ’case_insensitive’

Constante de chaîne d’un nom de classement. Amazon Redshift ne prend en charge que case_sensitive ou case_insensitive.

Type de retour

La COLLATE fonction renvoie VARCHAR ou CHAR en fonction du premier type d'expression d'entrée. Cette fonction ne modifie que le classement du premier argument d’entrée et ne modifie pas sa valeur de sortie.

Exemples

Pour créer la table T et définir col1 dans la table T comme case_sensitive, utilisez l’exemple suivant.

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

Lorsque vous exécutez la première requête, Amazon Redshift renvoie uniquement john. Une fois la COLLATE fonction exécutée sur col1, le classement devientcase_insensitive. La deuxième requête renvoie à la fois john et JOHN.

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

Pour créer la table A et définir col1 dans la table A comme case_insensitive, utilisez l’exemple suivant.

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

Lorsque vous exécutez la première requête, Amazon Redshift renvoie à la fois john et JOHN. Une fois la COLLATE fonction exécutée sur col1, le classement devientcase_sensitive. La deuxième requête renvoie uniquement john.

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