Funzione COLLATE - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzione COLLATE

La funzione COLLATE sovrascrive il confronto di una colonna o di un'espressione stringa.

Per informazioni su come creare le tabelle mediante il confronto di database, consultare CREATE TABLE.

Per informazioni su come creare i database mediante il confronto di database, consultare CREATE DATABASE.

Sintassi

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

Argomenti

stringa

Una colonna o un'espressione di stringa che desideri sovrascrivere.

'case_sensitive' | 'case_insensitive'

Una costante di stringa di un nome di confronto. Amazon Redshift supporta solo case_sensitive o case_insensitive.

Tipo restituito

La funzione COLLATE restituisce VARCHAR o CHAR a seconda del primo tipo di espressione di input. Questa funzione modifica il confronto solo del primo argomento di input e non ne modifica il valore di output.

Esempi

Per creare la tabella T e definire col1 nella tabella T come case_sensitive, utilizza il seguente esempio.

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

Quando esegui la prima query, Amazon Redshift restituisce solo john. Dopo che la funzione COLLATE viene eseguita su col1, il confronto diventa case_insensitive. La seconda query restituisce sia john che JOHN.

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

Per creare la tabella A e definire col1 nella tabella A come case_insensitive, utilizza il seguente esempio.

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

Quando esegui la prima query, Amazon Redshift restituisce sia john che JOHN. Dopo che la funzione COLLATE viene eseguita su col1, il confronto diventa case_sensitive. La seconda query restituisce solo john.

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