O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog
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' | 'cs' | 'case_insensitive' | 'ci');
Argumentos
- string
-
Uma coluna de string ou expressão que você deseja substituir.
- 'case_sensitive' | 'cs' | 'case_insensitive' | 'ci'
-
Uma constante de string de um nome de agrupamento. O Amazon Redshift permite somente os seguintes valores para esse parâmetro:
case_sensitive
cs
case_insensitive
ci
case_sensitive e cs são intercambiáveis e geram os mesmos resultados. Da mesma forma, case_insensitive e ci são intercambiáveis e geram os mesmos resultados.
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 | +------+