Função COLLATE
A função COLATE substitui o agrupamento de uma coluna de string ou expressão.
Para obter informações sobre como criar tabelas usando o agrupamento de banco de dados, consulte CRIAR TABELA.
Para obter informações sobre como criar banco de dados usando o agrupamento de banco de dados, consulte CREATE DATABASE.
Sintaxe
COLLATE(
string
, 'case_sensitive' | 'case_insensitive');
Argumentos
- string
-
Uma coluna de string ou expressão que você deseja substituir.
- 'case_sensitive' | 'case_insensitive'
-
Uma constante de string de um nome de agrupamento. O Amazon Redshift só oferece suporte a case_sensitive ou case_insensitive.
Tipo de retorno
A função COLLATE retorna VARCHAR
ou CHAR
dependendo do primeiro tipo de expressão de entrada. Esta função altera apenas o agrupamento do primeiro argumento de entrada e não altera o seu valor de saída.
Exemplos
Para criar a tabela T e definir a col1 na tabela T como case_sensitive
, use o exemplo a seguir.
CREATE TABLE T ( col1 Varchar(20) COLLATE case_sensitive ); INSERT INTO T VALUES ('john'),('JOHN');
Quando você executa a primeira consulta, o Amazon Redshift retorna apenas john
. Depois que a função COLLATE é executada em col1, o agrupamento se torna case_insensitive
. A segunda consulta retorna john
e JOHN
.
SELECT * FROM T WHERE col1 = 'john';
+------+
| col1 |
+------+
| john |
+------+
SELECT * FROM T WHERE COLLATE(col1, 'case_insensitive') = 'john';
+------+
| col1 |
+------+
| john |
| JOHN |
+------+
Para criar a tabela A e definir a col1 na tabela A como case_insensitive
, use o exemplo a seguir.
CREATE TABLE A ( col1 Varchar(20) COLLATE case_insensitive ); INSERT INTO A VALUES ('john'),('JOHN');
Quando você executa a primeira consulta, o Amazon Redshift retorna john
e JOHN
. Depois que a função COLLATE é executada em col1, o agrupamento se torna case_sensitive
. A segunda consulta retorna somente john
.
SELECT * FROM A WHERE col1 = 'john';
+------+
| col1 |
+------+
| john |
| JOHN |
+------+
SELECT * FROM A WHERE COLLATE(col1, 'case_sensitive') = 'john';
+------+
| col1 |
+------+
| john |
+------+