Función COLLATE - Amazon Redshift

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' | 'case_insensitive');

Argumentos

string

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

“case_sensitive” | “case_insensitive”

Una constante de cadena de un nombre de intercalación. Amazon Redshift solo admite case_sensitive o case_insensitive.

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