Função COLLATE - Amazon Redshift

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