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