Función COLLATE - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog.

Función COLLATE

La función COLLATE anula la intercalación de una expresión o una columna de cadenas.

Para obtener información sobre cómo crear tablas mediante la intercalación de bases de datos, consulte CREATE TABLE.

Para obtener información sobre cómo crear bases de datos mediante la intercalación de bases de datos, consulte CREATE DATABASE.

Sintaxis

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

Argumentos

cadena

Una expresión o una columna de cadenas que desea invalidar.

'case_sensitive' | 'cs' | 'case_insensitive' | 'ci'

Una constante de cadena de un nombre de intercalación. Amazon Redshift solo admite los siguientes valores para este parámetro:

  • case_sensitive

  • cs

  • case_insensitive

  • ci

case_sensitive y cs son intercambiables y producen los mismos resultados. Del mismo modo, case_insensitive y ci son intercambiables y producen los mismos resultados.

Tipo de retorno

La función COLLATE devuelve VARCHAR o CHAR de acuerdo con el primer tipo de expresión de entrada. Esta función solo cambia la intercalación del primer argumento de entrada y no modifica su valor de salida.

Ejemplos

Para crear la tabla T y definir col1 en la tabla T como case_sensitive, utilice el ejemplo siguiente.

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

Al ejecutar la primera consulta, Amazon Redshift solo devuelve john. Después de que la función COLLATE se ejecuta en col1, la intercalación se vuelve case_insensitive. La segunda consulta devuelve john y JOHN.

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

Para crear la tabla A y definir col1 en la tabla A como case_insensitive, utilice el ejemplo siguiente.

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

Al ejecutar la primera consulta, Amazon Redshift devuelve john y JOHN. Después de que la función COLLATE se ejecuta en col1, la intercalación se vuelve case_sensitive. La segunda consulta solo devuelve john.

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