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.
La fonction COLLATE remplace le classement d’une colonne ou d’une expression de chaîne.
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 fonction COLLATE renvoie VARCHAR
ou CHAR
en fonction du premier type d’expression en 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
. Après l’exécution de la fonction COLLATE sur col1, le classement devient case_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
. Après l’exécution de la fonction COLLATE sur col1, le classement devient case_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 |
+------+